diff --git a/tds/src/integrationTests/java/thredds/server/services/TestEnhancements.java b/tds/src/integrationTests/java/thredds/server/services/TestEnhancements.java
index 58c5fe8417..050553ebf1 100644
--- a/tds/src/integrationTests/java/thredds/server/services/TestEnhancements.java
+++ b/tds/src/integrationTests/java/thredds/server/services/TestEnhancements.java
@@ -20,6 +20,7 @@ public class TestEnhancements {
final static String ENHANCED_FILE = "localContent/testOffset.nc";
final static String NCML_ENHANCED_FILE = "testOffsetWithNcml.nc";
+ final static String NCML_ENHANCE_NONE_FILE = "testOffsetWithNcmlEnhanceNone.nc";
final static String ENHANCED_VAR_NAME = "variableWithOffset";
final static String NOT_ENHANCED_VAR_NAME = "variableWithoutOffset";
@@ -31,7 +32,7 @@ public void testNCSSWithEnhancements() throws IOException {
final byte[] content = TestOnLocalServer.getContent(endpoint, HttpServletResponse.SC_OK, ContentType.netcdf);
try (NetcdfFile netcdfFile = NetcdfFiles.openInMemory("test_data.nc", content)) {
- checkResultWithEnhancements(netcdfFile, 0);
+ checkResultWithEnhancements(netcdfFile, 0, true);
}
}
@@ -43,7 +44,7 @@ public void testNCSSWithEnhancementsNcML() throws IOException {
final byte[] content = TestOnLocalServer.getContent(endpoint, HttpServletResponse.SC_OK, ContentType.netcdf);
try (NetcdfFile netcdfFile = NetcdfFiles.openInMemory("test_data.nc", content)) {
- checkResultWithEnhancements(netcdfFile, 100);
+ checkResultWithEnhancements(netcdfFile, 100, true);
}
}
@@ -52,7 +53,8 @@ public void testOpendapWithEnhancements() throws IOException {
final String endpoint = TestOnLocalServer.withHttpPath("/dodsC/" + ENHANCED_FILE);
try (NetcdfFile netcdfFile = NetcdfDatasets.openFile(endpoint, null)) {
- checkResultWithEnhancements(netcdfFile, 0);
+ // Does not apply dataset attribute enhancements to data
+ checkResultWithEnhancements(netcdfFile, -100, true);
}
}
@@ -61,16 +63,28 @@ public void testOpendapWithEnhancementsNcML() throws IOException {
final String endpoint = TestOnLocalServer.withHttpPath("/dodsC/" + NCML_ENHANCED_FILE);
try (NetcdfFile netcdfFile = NetcdfDatasets.openFile(endpoint, null)) {
- checkResultWithEnhancements(netcdfFile, 100);
+ // Does apply NcML enhancements to data with enhance="all"
+ checkResultWithEnhancements(netcdfFile, 100, true);
}
}
- private void checkResultWithEnhancements(NetcdfFile netcdfFile, int expectedDiff) throws IOException {
+ @Test
+ public void testOpendapWithEnhanceNoneNcML() throws IOException {
+ final String endpoint = TestOnLocalServer.withHttpPath("/dodsC/" + NCML_ENHANCE_NONE_FILE);
+
+ try (NetcdfFile netcdfFile = NetcdfDatasets.openFile(endpoint, null)) {
+ // Does not apply NcML enhancements to data with enhance="none"
+ checkResultWithEnhancements(netcdfFile, -100, false);
+ }
+ }
+
+ private void checkResultWithEnhancements(NetcdfFile netcdfFile, int expectedDiff, boolean shouldRemoveOffsetAtt)
+ throws IOException {
final Variable enhancedVar = netcdfFile.findVariable(ENHANCED_VAR_NAME);
final Variable orgVar = netcdfFile.findVariable(NOT_ENHANCED_VAR_NAME);
assertThat(enhancedVar != null).isTrue();
assertThat(orgVar != null).isTrue();
- assertThat(orgVar.findAttribute("add_offset")).isNull();
+ assertThat(orgVar.findAttribute("add_offset") == null).isEqualTo(shouldRemoveOffsetAtt);
final Array values1 = enhancedVar.read();
final Array values2 = orgVar.read();
for (int i = 0; i < values1.getSize(); i++) {
diff --git a/tds/src/test/content/thredds/catalog.xml b/tds/src/test/content/thredds/catalog.xml
index 221c0de1f0..2d0aa77c6f 100644
--- a/tds/src/test/content/thredds/catalog.xml
+++ b/tds/src/test/content/thredds/catalog.xml
@@ -60,6 +60,15 @@
+
+ all
+
+
+
+
+
+