diff --git a/src/main/resources/config/json-paths-config.yaml b/src/main/resources/config/json-paths-config.yaml index 43f11dd..5a134d5 100644 --- a/src/main/resources/config/json-paths-config.yaml +++ b/src/main/resources/config/json-paths-config.yaml @@ -87,3 +87,13 @@ products: - /fishsoop/fishSOOP-profiles.json - /fishsoop/fishSOOP-quarterlyAnomalies.json - /fishsoop/fishSOOP-depthAnomalies.json + + - product: "Gliders" + description: "Gliders mission and navigation images and animations, temperature-salinity plots and annual maps" + paths: + - /gliders/gliders-mission.json + - /gliders/gliders-mission-video.json + - /gliders/gliders-navigation.json + - /gliders/gliders-navigation-video.json + - /gliders/gliders-ts.json + - /gliders/gliders-yearmaps.json diff --git a/src/main/resources/config/products.yaml b/src/main/resources/config/products.yaml index 49af605..8657909 100644 --- a/src/main/resources/config/products.yaml +++ b/src/main/resources/config/products.yaml @@ -180,3 +180,22 @@ ocean-current: - title: "Depth Anomalies" id: "fishSOOP-depthAnomalies" regionRequired: false + + - title: "Gliders" + id: "gliders" + type: "ProductGroup" + children: + - title: "Mission Images" + id: "gliders-mission" + - title: "Mission Animations" + id: "gliders-mission-video" + - title: "Navigation Images" + id: "gliders-navigation" + - title: "Navigation Animations" + id: "gliders-navigation-video" + - title: "Temperature-Salinity Plots" + id: "gliders-ts" + regionRequired: false + - title: "Annual Maps" + id: "gliders-yearmaps" + regionRequired: false diff --git a/src/test/java/au/org/aodn/oceancurrent/configuration/JsonPathsConfigTest.java b/src/test/java/au/org/aodn/oceancurrent/configuration/JsonPathsConfigTest.java index ed4f028..a7419c8 100644 --- a/src/test/java/au/org/aodn/oceancurrent/configuration/JsonPathsConfigTest.java +++ b/src/test/java/au/org/aodn/oceancurrent/configuration/JsonPathsConfigTest.java @@ -57,4 +57,19 @@ void fishSoopShouldHaveThreeJsonPaths() { "/fishsoop/fishSOOP-depthAnomalies.json" ); } + @Test + void glidersShouldHaveSixJsonPaths() { + var entries = config.getProducts().stream() + .filter(p -> p.getProduct().equals("Gliders")) + .toList(); + assertThat(entries).hasSize(1); + assertThat(entries.get(0).getPaths()).containsExactly( + "/gliders/gliders-mission.json", + "/gliders/gliders-mission-video.json", + "/gliders/gliders-navigation.json", + "/gliders/gliders-navigation-video.json", + "/gliders/gliders-ts.json", + "/gliders/gliders-yearmaps.json" + ); + } } diff --git a/src/test/java/au/org/aodn/oceancurrent/configuration/ProductConfigIntegrationTest.java b/src/test/java/au/org/aodn/oceancurrent/configuration/ProductConfigIntegrationTest.java index 8c34374..5d9fe02 100644 --- a/src/test/java/au/org/aodn/oceancurrent/configuration/ProductConfigIntegrationTest.java +++ b/src/test/java/au/org/aodn/oceancurrent/configuration/ProductConfigIntegrationTest.java @@ -175,4 +175,33 @@ void fishSoopRegionFlagsShouldMatchConfig() { assertThat(depthAnomalies).isNotNull(); assertThat(depthAnomalies.isRegionRequired()).isFalse(); } + @Test + void glidersGroupShouldContainExpectedChildrenAndFlags() { + Product gliders = productGroupMap.get("gliders"); + assertThat(gliders).isNotNull(); + assertThat(gliders.getTitle()).isEqualTo("Gliders"); + assertThat(gliders.getType()).isEqualTo("ProductGroup"); + assertThat(productMap).doesNotContainKey("gliders"); + assertThat(gliders.getChildren()).extracting(Product::getId).containsExactly( + "gliders-mission", + "gliders-mission-video", + "gliders-navigation", + "gliders-navigation-video", + "gliders-ts", + "gliders-yearmaps" + ); + assertThat(gliders.getChildren()).extracting(Product::getTitle).containsExactly( + "Mission Images", "Mission Animations", "Navigation Images", "Navigation Animations", + "Temperature-Salinity Plots", "Annual Maps" + ); + gliders.getChildren().forEach(child -> { + assertThat(productMap.get(child.getId())).isSameAs(child); + assertThat(allProductsMap.get(child.getId())).isSameAs(child); + assertThat(child.getParentId()).isEqualTo("gliders"); + assertThat(child.getParentTitle()).isEqualTo("Gliders"); + assertThat(child.isDepthRequired()).isFalse(); + assertThat(child.isRegionRequired()).isEqualTo( + !List.of("gliders-ts", "gliders-yearmaps").contains(child.getId())); + }); + } }