|
2 | 2 | (:require |
3 | 3 | [clj-time.core :as time] |
4 | 4 | [clojure.test :refer [deftest is testing]] |
5 | | - [cmr.bootstrap.config :as config] |
6 | 5 | [cmr.bootstrap.data.bulk-index :as bulk-index-data] |
7 | 6 | [cmr.bootstrap.data.message-queue :as message-queue] |
8 | 7 | [cmr.bootstrap.embedded-system-helper :as helper] |
9 | 8 | [cmr.bootstrap.services.dispatch.core :as dispatch] |
10 | 9 | [cmr.bootstrap.services.dispatch.impl.message-queue :as message-queue-dispatcher])) |
11 | 10 |
|
12 | | -(deftest date-time-chunks-creates-half-open-ranges |
13 | | - (let [start (time/date-time 2026 5 13 1 0) |
14 | | - end (time/date-time 2026 5 13 4 30)] |
15 | | - (is (= [[(time/date-time 2026 5 13 1 0) |
16 | | - (time/date-time 2026 5 13 2 0)] |
17 | | - [(time/date-time 2026 5 13 2 0) |
18 | | - (time/date-time 2026 5 13 3 0)] |
19 | | - [(time/date-time 2026 5 13 3 0) |
20 | | - (time/date-time 2026 5 13 4 0)] |
21 | | - [(time/date-time 2026 5 13 4 0) |
22 | | - (time/date-time 2026 5 13 4 30)]] |
23 | | - (#'message-queue-dispatcher/date-time-chunks start end 1))))) |
24 | | - |
25 | | -(deftest date-time-chunks-returns-empty-when-range-is-empty |
26 | | - (let [start (time/date-time 2026 5 13 1 0)] |
27 | | - (is (= [] (#'message-queue-dispatcher/date-time-chunks start start 1))))) |
28 | | - |
29 | 11 | (deftest bootstrap-provider-between-date-time-event-test |
30 | 12 | (let [start (time/date-time 2026 5 13 1 0) |
31 | 13 | end (time/date-time 2026 5 13 2 0)] |
|
38 | 20 | start |
39 | 21 | end))))) |
40 | 22 |
|
41 | | -(deftest index-data-between-date-time-publishes-provider-chunks |
| 23 | +(deftest index-data-between-date-time-publishes-full-range-per-provider |
42 | 24 | (let [published (atom []) |
43 | | - context {:system {:providers [{:provider-id "PROV1"}]}} |
| 25 | + context {:system {:providers [{:provider-id "PROV1"} |
| 26 | + {:provider-id "PROV2"}]}} |
44 | 27 | start (time/date-time 2026 5 13 1 0) |
45 | 28 | end (time/date-time 2026 5 13 3 30)] |
46 | | - (with-redefs [config/bulk-index-between-date-time-window-hours (constantly 1) |
47 | | - message-queue/publish-bootstrap-concepts-event |
| 29 | + (with-redefs [message-queue/publish-bootstrap-concepts-event |
48 | 30 | (fn [_context msg] |
49 | 31 | (swap! published conj msg))] |
50 | | - (dispatch/index-data-between-date-time |
51 | | - (message-queue-dispatcher/->MessageQueueDispatcher) |
52 | | - context |
53 | | - ["PROV1"] |
54 | | - start |
55 | | - end) |
56 | | - (is (= [{:action :index-provider-between-date-time |
57 | | - :provider-id "PROV1" |
58 | | - :start-date-time (time/date-time 2026 5 13 1 0) |
59 | | - :end-date-time (time/date-time 2026 5 13 2 0)} |
60 | | - {:action :index-provider-between-date-time |
61 | | - :provider-id "PROV1" |
62 | | - :start-date-time (time/date-time 2026 5 13 2 0) |
63 | | - :end-date-time (time/date-time 2026 5 13 3 0)} |
64 | | - {:action :index-provider-between-date-time |
65 | | - :provider-id "PROV1" |
66 | | - :start-date-time (time/date-time 2026 5 13 3 0) |
67 | | - :end-date-time (time/date-time 2026 5 13 3 30)}] |
68 | | - @published))))) |
| 32 | + (testing "When provider IDs are supplied, then one full-range event is published per provider" |
| 33 | + (dispatch/index-data-between-date-time |
| 34 | + (message-queue-dispatcher/->MessageQueueDispatcher) |
| 35 | + context |
| 36 | + ["PROV1" "PROV2"] |
| 37 | + start |
| 38 | + end) |
| 39 | + (is (= [{:action :index-provider-between-date-time |
| 40 | + :provider-id "PROV1" |
| 41 | + :start-date-time (time/date-time 2026 5 13 1 0) |
| 42 | + :end-date-time (time/date-time 2026 5 13 3 30)} |
| 43 | + {:action :index-provider-between-date-time |
| 44 | + :provider-id "PROV2" |
| 45 | + :start-date-time (time/date-time 2026 5 13 1 0) |
| 46 | + :end-date-time (time/date-time 2026 5 13 3 30)}] |
| 47 | + @published)))))) |
69 | 48 |
|
70 | 49 | (deftest index-data-between-date-time-expands-empty-provider-list |
71 | 50 | (let [published (atom []) |
|
74 | 53 | end (time/date-time 2026 5 13 2 0)] |
75 | 54 | (with-redefs [helper/get-providers (constantly [{:provider-id "PROV1"} |
76 | 55 | {:provider-id "PROV2"}]) |
77 | | - config/bulk-index-between-date-time-window-hours (constantly 0) |
78 | 56 | message-queue/publish-bootstrap-concepts-event |
79 | 57 | (fn [_context msg] |
80 | 58 | (swap! published conj msg))] |
81 | | - (testing "empty provider ids uses all providers plus CMR and clamps chunk hours to one" |
| 59 | + (testing "When provider IDs are omitted, then one full-range event is published for all providers plus CMR" |
82 | 60 | (dispatch/index-data-between-date-time |
83 | 61 | (message-queue-dispatcher/->MessageQueueDispatcher) |
84 | 62 | context |
|
0 commit comments