diff --git a/src/main/java/org/opengis/cite/cdb10/CommonFixture.java b/src/main/java/org/opengis/cite/cdb10/CommonFixture.java
index 1ab1d183..eb37a127 100644
--- a/src/main/java/org/opengis/cite/cdb10/CommonFixture.java
+++ b/src/main/java/org/opengis/cite/cdb10/CommonFixture.java
@@ -70,14 +70,6 @@ public void initCommonFixture(ITestContext testContext) {
*/
@BeforeClass
public void obtainTestSubject(ITestContext testContext) {
- Object obj = testContext.getSuite().getAttribute(
- SuiteAttribute.LEVEL.getName());
- if ((null != obj)) {
- Integer level = Integer.class.cast(obj);
-// Assert.assertTrue(level.intValue() > 0,
-// "Conformance level 1 will not be checked since ics = " + level);
- }
-
path = testContext.getSuite().getAttribute(
SuiteAttribute.TEST_SUBJECT.getName()).toString().trim();
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXml.java
new file mode 100644
index 00000000..b6f518f6
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXml.java
@@ -0,0 +1,105 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class CDBAttributesXml extends MetadataXmlFile {
+
+ public CDBAttributesXml(String path) {
+ super(path, "CDB_Attributes.xml", "Vector_Attributes.xsd");
+ }
+
+ public void verifyCodeIsAnInteger() {
+ NodeList nodeList = XMLUtils.getNodeList("//Attribute", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(value.matches("^\\d+$"),
+ String.format("CDB_Attributes.xml attribute code " +
+ "should be an integer. Code '%s' is not valid.", value));
+ }
+ }
+
+ public void verifySymbolIsUnique() {
+ NodeList nodeList = XMLUtils.getNodeList("//Attribute", xmlFile.toPath());
+
+ ArrayList symbols = new ArrayList<>();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ symbols.add(currentItem.getAttributes().getNamedItem("symbol").getNodeValue());
+ }
+
+ for (String symbol : symbols) {
+ Assert.assertEquals(Collections.frequency(symbols, symbol), 1,
+ String.format("CDB_Attributes.xml element Attribute should " +
+ "have unique symbols. Symbol '%s' is not unique.", symbol));
+ }
+ }
+
+ public void verifyValueHasAValidType() {
+ NodeList nodeList = XMLUtils.getNodeList("//Value/Type", xmlFile.toPath());
+
+ ArrayList types = new ArrayList<>();
+ List VALID_TYPES = Arrays.asList("Text", "Numeric", "Boolean");
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ types.add(currentItem.getTextContent());
+ }
+
+ for (String type : types) {
+ Assert.assertTrue(VALID_TYPES.contains(type),
+ String.format("CDB_Attributes.xml element Type should have a value of " +
+ "'Text', 'Numeric' or 'Boolean'. Type '%s' is not valid.", type));
+ }
+ }
+
+ public void verifyScalerCodeIsValid() {
+ NodeList nodeList = XMLUtils.getNodeList("//Scalers/Scaler", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(value.matches("^[1-9]\\d*$"),
+ String.format("CDB_Attributes.xml Scaler code should be a positive integer. Code '%s' is not valid.", value));
+ }
+ }
+
+ public void verifyUnitCodeIsValid() {
+ NodeList nodeList = XMLUtils.getNodeList("//Units/Unit", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(value.matches("^[1-9]\\d*$"),
+ String.format("CDB_Attributes.xml Unit code should be a positive integer. Code '%s' is not valid.", value));
+ }
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXmlStructureTests.java
index 9904a9a4..ce5be6a9 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/CDBAttributesXmlStructureTests.java
@@ -1,129 +1,48 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
/**
* Created by martin on 2016-09-08.
*/
-public class CDBAttributesXmlStructureTests extends CommonFixture {
+public class CDBAttributesXmlStructureTests extends Capability2Tests {
@Test
public void verifyCDBAttributesXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "CDB_Attributes.xml")),
- "Metadata directory should contain CDB_Attributes.xml file.");
+ new CDBAttributesXml(path);
}
@Test
public void verifyCDBAttributesXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "CDB_Attributes.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Vector_Attributes.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new CDBAttributesXml(path).verifyXmlAgainstSchema();
}
@Test
- public void verifyCodeIsAnInteger() {
- NodeList nodeList = XMLUtils.getNodeList("//Attribute", Paths.get(path, "Metadata", "CDB_Attributes.xml"));
-
- ArrayList values = new ArrayList<>();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
- }
-
- for (String value : values) {
- Assert.assertTrue(value.matches("^\\d+$"),
- String.format("CDB_Attributes.xml attribute code should be an integer. Code '%s' is not valid.", value));
- }
+ public void verifyCDBAttributesXmlCodeIsAnInteger() {
+ new CDBAttributesXml(path).verifyCodeIsAnInteger();
}
@Test
- public void verifySymbolIsUnique() {
- NodeList nodeList = XMLUtils.getNodeList("//Attribute", Paths.get(path, "Metadata", "CDB_Attributes.xml"));
-
- ArrayList symbols = new ArrayList<>();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- symbols.add(currentItem.getAttributes().getNamedItem("symbol").getNodeValue());
- }
-
- for (String symbol : symbols) {
- Assert.assertEquals(Collections.frequency(symbols, symbol), 1,
- String.format("CDB_Attributes.xml element Attribute should have unique symbols. Symbol '%s' is not unique.", symbol));
- }
+ public void verifyCDBAttributesXmlSymbolIsUnique() {
+ new CDBAttributesXml(path).verifySymbolIsUnique();
}
@Test
- public void verifyValueHasAValidType() {
- NodeList nodeList = XMLUtils.getNodeList("//Value/Type", Paths.get(path, "Metadata", "CDB_Attributes.xml"));
-
- ArrayList types = new ArrayList<>();
- List VALID_TYPES = Arrays.asList("Text", "Numeric", "Boolean");
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- types.add(currentItem.getTextContent());
- }
-
- for (String type : types) {
- Assert.assertTrue(VALID_TYPES.contains(type),
- String.format("CDB_Attributes.xml element Type should have a value of " +
- "'Text', 'Numeric' or 'Boolean'. Type '%s' is not valid.", type));
- }
+ public void verifyCDBAttributesXmlValueHasAValidType() {
+ new CDBAttributesXml(path).verifyValueHasAValidType();
}
@Test
- public void verifyScalerCodeIsValid() {
- NodeList nodeList = XMLUtils.getNodeList("//Scalers/Scaler", Paths.get(path, "Metadata", "CDB_Attributes.xml"));
-
- ArrayList values = new ArrayList<>();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
- }
-
- for (String value : values) {
- Assert.assertTrue(value.matches("^[1-9]\\d*$"),
- String.format("CDB_Attributes.xml Scaler code should be a positive integer. Code '%s' is not valid.", value));
- }
+ public void verifyCDBAttributesXmlScalerCodeIsValid() {
+ new CDBAttributesXml(path).verifyScalerCodeIsValid();
}
- public void verifyUnitCodeIsValid() {
- NodeList nodeList = XMLUtils.getNodeList("//Units/Unit", Paths.get(path, "Metadata", "CDB_Attributes.xml"));
-
- ArrayList values = new ArrayList<>();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
- }
-
- for (String value : values) {
- Assert.assertTrue(value.matches("^[1-9]\\d*$"),
- String.format("CDB_Attributes.xml Unit code should be a positive integer. Code '%s' is not valid.", value));
- }
+ @Test
+ public void verifyCDBAttributesXmlUnitCodeIsValid() {
+ new CDBAttributesXml(path).verifyUnitCodeIsValid();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/Capability2Tests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/Capability2Tests.java
index 0743d38f..f3d39520 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/Capability2Tests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/Capability2Tests.java
@@ -1,7 +1,10 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
+import org.opengis.cite.cdb10.SuiteAttribute;
import org.testng.Assert;
+import org.testng.ITestContext;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@@ -10,30 +13,21 @@
*/
public class Capability2Tests extends CommonFixture {
- /**
- * Run conformance level 2 tests only if the preconditions are satisfied.
- */
- @BeforeTest
- public void checkPreconditions() {
- Assert.assertTrue(2 > 1,
- "Preconditions for Conformance Level 2 were not satisfied.");
- }
-
- /**
- * Checks the result of the length function.
- */
- @Test(description = "Implements ATC 2-1")
- public void checkLength() {
- String str = "perihelion";
- Assert.assertEquals(str.length(), 10);
- }
-
/**
- * Checks the Unicode code point value of the first character.
+ * Obtains the test subject from the ISuite context. The suite attribute
+ * {@link org.opengis.cite.cdb10.SuiteAttribute#TEST_SUBJECT} should
+ * evaluate to a DOM Document node.
+ *
+ * @param testContext The test (group) context.
*/
- @Test(description = "Implements ATC 2-2")
- public void codePoint() {
- String str = "perihelion";
- Assert.assertEquals(str.codePointAt(0), 100);
+ @BeforeClass
+ public void obtainTestSubject(ITestContext testContext) {
+ Object obj = testContext.getSuite().getAttribute(SuiteAttribute.LEVEL.getName());
+ if ((null != obj)) {
+ Integer level = Integer.class.cast(obj);
+ Assert.assertTrue(level > 1,
+ "Conformance level " + "2 will not be checked since ics = " + level);
+ }
+ super.obtainTestSubject(testContext);
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXml.java
new file mode 100644
index 00000000..252b3c97
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXml.java
@@ -0,0 +1,11 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class ConfigurationXml extends MetadataXmlFile {
+
+ public ConfigurationXml(String path) {
+ super(path, "Configuration.xml", "Configuration.xsd");
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXmlStructureTests.java
index 56e446b6..8bbbc373 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ConfigurationXmlStructureTests.java
@@ -1,37 +1,23 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
/**
* Created by martin on 2016-09-07.
*/
-public class ConfigurationXmlStructureTests extends CommonFixture {
+public class ConfigurationXmlStructureTests extends Capability2Tests {
@Test
public void verifyConfigurationXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Configuration.xml")),
- "Metadata directory should contain Configuration.xml file.");
+ new ConfigurationXml(path);
}
@Test
public void verifyConfigurationXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Configuration.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Configuration.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new ConfigurationXml(path).verifyXmlAgainstSchema();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXml.java
new file mode 100644
index 00000000..2f76d864
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXml.java
@@ -0,0 +1,91 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.*;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class DefaultsXml extends MetadataXmlFile {
+ public DefaultsXml(String path) {
+ super(path, "Defaults.xml", "Defaults.xsd");
+ }
+
+ public void verifyElementR_W_TypeHasValidValues() {
+ NodeList nodeList = XMLUtils.getNodeList("//R_W_Type", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+ List VALID_VALUES = Arrays.asList("W", "R");
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getTextContent());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(VALID_VALUES.contains(value),
+ String.format("Defaults.xml element R_W_Type should " +
+ "have a value of R or W. Value '%s' is not valid.", value));
+ }
+ }
+
+ public void verifyNameIsUniqueForEachDataset() {
+ for (String datasetValue : getDatasetValues()) {
+ assertNamesAreUnique(datasetValue);
+ }
+ }
+
+ public void verifyElementTypeHasValidValue() {
+ NodeList nodeList = XMLUtils.getNodeList("//Type", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+ List VALID_VALUES = Arrays.asList("string", "integer", "float");
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getTextContent());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(VALID_VALUES.contains(value),
+ String.format("Defaults.xml element Type should have a value of " +
+ "'float', 'integer' or 'string'. Value '%s' is not valid.", value));
+ }
+ }
+
+ private HashSet getDatasetValues() {
+ NodeList datasetNodes = XMLUtils.getNodeList("//Dataset", xmlFile.toPath());
+
+ HashSet datasetValues = new HashSet<>();
+
+ for (int i = 0; i < datasetNodes.getLength(); i++) {
+ Node currentItem = datasetNodes.item(i);
+ datasetValues.add(currentItem.getTextContent());
+ }
+ return datasetValues;
+ }
+
+ private ArrayList collectNameNodesWithDatasetValue(String datasetValue) {
+ NodeList nameNodes = XMLUtils.getNodeList("//Default_Value[Dataset/text() = \"" + datasetValue + "\"]/Name", xmlFile.toPath());
+
+ ArrayList names = new ArrayList<>();
+ for (int i = 0; i < nameNodes.getLength(); i++) {
+ names.add(nameNodes.item(i).getTextContent());
+ }
+ return names;
+ }
+
+ private void assertNamesAreUnique(String datasetValue) {
+ ArrayList names = collectNameNodesWithDatasetValue(datasetValue);
+
+ for (String name : names) {
+ Assert.assertEquals(Collections.frequency(names, name), 1,
+ String.format("Defaults.xml element Name should be " +
+ "unique under each Dataset. '%s' is not unique.", name));
+ }
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXmlStructureTests.java
index e3fb0db9..a2c0d638 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/DefaultsXmlStructureTests.java
@@ -1,114 +1,37 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.*;
-import org.testng.Assert;
import org.testng.annotations.Test;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.*;
/**
* Created by martin on 2016-09-03.
*/
-public class DefaultsXmlStructureTests extends CommonFixture {
+public class DefaultsXmlStructureTests extends Capability2Tests {
@Test
public void verifyDefaultsXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Defaults.xml")),
- "Metadata directory should contain Defaults.xml file.");
+ new DefaultsXml(path);
}
@Test
public void verifyDefaultsXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Defaults.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Defaults.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new DefaultsXml(path).verifyXmlAgainstSchema();
}
@Test
public void verifyDefaultsXmlElementR_W_TypeHasValidValues() {
- NodeList nodeList = XMLUtils.getNodeList("//R_W_Type", Paths.get(path, "Metadata", "Defaults.xml"));
-
- ArrayList values = new ArrayList<>();
- List VALID_VALUES = Arrays.asList("W", "R");
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getTextContent());
- }
-
- for (String value : values) {
- Assert.assertTrue(VALID_VALUES.contains(value),
- String.format("Defaults.xml element R_W_Type should have a value of R or W. Value '%s' is not valid.", value));
- }
+ new DefaultsXml(path).verifyElementR_W_TypeHasValidValues();
}
@Test
public void verifyDefaultsXmlNameIsUniqueForEachDataset() {
- for (String datasetValue : getDatasetValues()) {
- assertNamesAreUnique(datasetValue);
- }
+ new DefaultsXml(path).verifyNameIsUniqueForEachDataset();
}
@Test
public void verifyDefaultsXmlElementTypeHasValidValue() {
- NodeList nodeList = XMLUtils.getNodeList("//Type", Paths.get(path, "Metadata", "Defaults.xml"));
-
- ArrayList values = new ArrayList<>();
- List VALID_VALUES = Arrays.asList("string", "integer", "float");
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getTextContent());
- }
-
- for (String value : values) {
- Assert.assertTrue(VALID_VALUES.contains(value),
- String.format("Defaults.xml element Type should have a value of " +
- "'float', 'integer' or 'string'. Value '%s' is not valid.", value));
- }
+ new DefaultsXml(path).verifyElementTypeHasValidValue();
}
-
- private HashSet getDatasetValues() {
- NodeList datasetNodes = XMLUtils.getNodeList("//Dataset", Paths.get(path, "Metadata", "Defaults.xml"));
-
- HashSet datasetValues = new HashSet<>();
-
- for (int i = 0; i < datasetNodes.getLength(); i++) {
- Node currentItem = datasetNodes.item(i);
- datasetValues.add(currentItem.getTextContent());
- }
- return datasetValues;
- }
-
- private ArrayList collectNameNodesWithDatasetValue(String datasetValue) {
- NodeList nameNodes = XMLUtils.getNodeList("//Default_Value[Dataset/text() = \"" + datasetValue + "\"]/Name", Paths.get(path, "Metadata", "Defaults.xml"));
-
- ArrayList names = new ArrayList<>();
- for (int i = 0; i < nameNodes.getLength(); i++) {
- names.add(nameNodes.item(i).getTextContent());
- }
- return names;
- }
-
- private void assertNamesAreUnique(String datasetValue) {
- ArrayList names = collectNameNodesWithDatasetValue(datasetValue);
-
- for (String name : names) {
- Assert.assertEquals(Collections.frequency(names, name), 1,
- String.format("Defaults.xml element Name should be unique under each Dataset. '%s' is not unique.", name));
- }
- }
-
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXml.java
new file mode 100644
index 00000000..41ffb03d
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXml.java
@@ -0,0 +1,19 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.testng.Assert;
+
+import java.nio.file.Files;
+
+/**
+ * Created by martin on 2016-11-18.
+ */
+public class GeomaticsAttributesXml extends MetadataXmlFile {
+ public GeomaticsAttributesXml(String path) {
+ super(path, "Geomatics_Attributes.xml", "Geomatics_Attributes.xsd");
+ }
+
+ public void verifyGeomaticsAttributesXsdFileExists() {
+ Assert.assertTrue(Files.exists(xsdFile.toPath()),
+ "If Geomatics_Attributes.xml exists there should be a Geomatics_Attributes.xsd in the Schema folder");
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXmlStructureTests.java
index 040b5028..84502eae 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/GeomaticsAttributesXmlStructureTests.java
@@ -1,49 +1,28 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
/**
* Created by martin on 2016-09-10.
*/
-public class GeomaticsAttributesXmlStructureTests extends CommonFixture {
+public class GeomaticsAttributesXmlStructureTests extends Capability2Tests {
@Test
- public void verifyGeomaticsAttributesXsdFileExists() {
- if (geomaticsAttributesXmlExists()) {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Schema", "Geomatics_Attributes.xsd")),
- "If Geomatics_Attributes.xml exists there should be a Geomatics_Attributes.xsd in the Schema folder");
- }
+ public void verifyGeomaticsAttributesXmlFileExists() {
+ new GeomaticsAttributesXml(path);
}
@Test
- public void verifyGeomaticsAttributesXmlAgainstSchema() throws IOException, SAXException {
- if (geomaticsAttributesXmlExists() && geomaticsAttributesXsdExists()) {
- File xmlFile = Paths.get(path, "Metadata", "Geomatics_Attributes.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Geomatics_Attributes.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
- }
- }
-
- private boolean geomaticsAttributesXmlExists() {
- return Paths.get(path, "Metadata", "Geomatics_Attributes.xml").toFile().exists();
+ public void verifyGeomaticsAttributesXsdFileExists() {
+ new GeomaticsAttributesXml(path).verifyGeomaticsAttributesXsdFileExists();
}
- private boolean geomaticsAttributesXsdExists() {
- return Paths.get(path, "Metadata", "Schema", "Geomatics_Attributes.xsd").toFile().exists();
+ @Test
+ public void verifyGeomaticsAttributesXmlAgainstSchema() throws IOException, SAXException {
+ new GeomaticsAttributesXml(path).verifyXmlAgainstSchema();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXml.java
new file mode 100644
index 00000000..42cae403
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXml.java
@@ -0,0 +1,45 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class LightsXml extends MetadataXmlFile {
+ public LightsXml(String path) {
+ super(path, "Lights.xml", "Lights.xsd");
+ }
+
+ public void verifyHasUniqueCodes() {
+ NodeList nodeList = XMLUtils.getNodeList("//Light", xmlFile.toPath());
+
+ ArrayList codes = new ArrayList<>();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ codes.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
+ }
+
+ for (String code : codes) {
+ Assert.assertEquals(Collections.frequency(codes, code), 1,
+ String.format("Lights.xml element Light should have unique codes. Code '%s' is not unique.", code));
+ }
+ }
+
+ public void verifyCodesAreWithinRange() {
+ NodeList nodeList = XMLUtils.getNodeList("//Light", xmlFile.toPath());
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ int key = Integer.parseInt(currentItem.getAttributes().getNamedItem("code").getNodeValue());
+
+ Assert.assertTrue((key >= 0) && (key <= 9999), "Lights.xml element Light should have a code from 0 - 9999 inclusive.");
+ }
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXmlStructureTests.java
index 4ab16944..a2fdd9d7 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXmlStructureTests.java
@@ -1,70 +1,33 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
/**
* Created by martin on 2016-09-01.
*/
-public class LightsXmlStructureTests extends CommonFixture {
+public class LightsXmlStructureTests extends Capability2Tests {
@Test
public void verifyLightsXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Lights.xml")), "Metadata directory should contain Lights.xml file.");
+ new LightsXml(path);
}
@Test
public void verifyLightsXmlFileAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Lights.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Lights.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new LightsXml(path).verifyXmlAgainstSchema();
}
@Test
public void verifyLightsXmlHasUniqueCodes() {
- NodeList nodeList = XMLUtils.getNodeList("//Light", Paths.get(path, "Metadata", "Lights.xml"));
-
- ArrayList codes = new ArrayList<>();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- codes.add(currentItem.getAttributes().getNamedItem("code").getNodeValue());
- }
-
- for (String code : codes) {
- Assert.assertEquals(Collections.frequency(codes, code), 1,
- String.format("Lights.xml element Light should have unique codes. Code '%s' is not unique.", code));
- }
+ new LightsXml(path).verifyHasUniqueCodes();
}
@Test
public void verifyLightsXmlCodesAreWithinRange() {
- NodeList nodeList = XMLUtils.getNodeList("//Light", Paths.get(path, "Metadata", "Lights.xml"));
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- int key = Integer.parseInt(currentItem.getAttributes().getNamedItem("code").getNodeValue());
-
- Assert.assertTrue((key >= 0) && (key <= 9999), "Lights.xml element Light should have a code from 0 - 9999 inclusive.");
- }
+ new LightsXml(path).verifyCodesAreWithinRange();
}
-
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXxxXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXxxXmlStructureTests.java
index 01b65de7..b367915a 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXxxXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/LightsXxxXmlStructureTests.java
@@ -4,6 +4,7 @@
import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
import org.opengis.cite.cdb10.util.XMLUtils;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -19,10 +20,15 @@
/**
* Created by martin on 2016-09-12.
*/
-public class LightsXxxXmlStructureTests extends CommonFixture {
+public class LightsXxxXmlStructureTests extends Capability2Tests {
private static final List DIRECTIONALITY_VALUES = Arrays.asList("Omnidirectional", "Directional", "Bidirectional");
+ @BeforeClass
+ public void checkFilesExist() {
+ Assert.assertFalse(getCustomLightsXmlFiles().isEmpty(), "No custom Lights xml files.");
+ }
+
@Test
public void verifyLights_XxxXmlFileExists() {
for (File xmlFile : getCustomLightsXmlFiles()) {
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXml.java
new file mode 100644
index 00000000..c1122eab
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXml.java
@@ -0,0 +1,60 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class MaterialsXml extends MetadataXmlFile {
+ public MaterialsXml(String path) {
+ super(path, "Materials.xml", "Base_Material_Table.xsd");
+ }
+
+ public void verifyElementNameIsUnique() {
+ ArrayList names = getNameValues();
+ for (String name : names) {
+ Assert.assertEquals(Collections.frequency(names, name), 1,
+ String.format("Materials.xml element Name should be unique. '%s' is not unique.", name));
+ }
+ }
+
+ public void verifyAllBaseMaterialElementsHaveAChildNodeName() {
+ NodeList baseMaterialNodes = XMLUtils.getNodeList("//Base_Material[not(Name)]", xmlFile.toPath());
+ Assert.assertEquals(baseMaterialNodes.getLength(), 0, "Materials.xml element Base_Material requires a child element Name.");
+ }
+
+ public void verifyBaseMaterialNameIsValid() {
+ ArrayList names = getNameValues();
+
+ ArrayList invalidNames = new ArrayList<>();
+
+ for (String name : names) {
+ if(!name.matches("^BM_[a-zA-Z0-9_-]{0,29}")) {
+ invalidNames.add(name);
+ }
+ }
+
+ Assert.assertEquals(invalidNames.size(), 0,
+ String.format("Materials.xml element Name is always in format \"BM__*\", " +
+ "has a maximum of 32 characters, and can only contain letters, digits, " +
+ "underscores, and hyphens. %s do not conform", invalidNames.toString()));
+ }
+
+ private ArrayList getNameValues() {
+ NodeList nameNodes = XMLUtils.getNodeList("//Base_Material/Name", xmlFile.toPath());
+
+ ArrayList nameValues = new ArrayList<>();
+
+ for (int i = 0; i < nameNodes.getLength(); i++) {
+ Node currentItem = nameNodes.item(i);
+ nameValues.add(currentItem.getTextContent());
+ }
+ return nameValues;
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXmlStructureTests.java
index beeb488f..f15fc45a 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MaterialsXmlStructureTests.java
@@ -19,68 +19,30 @@
/**
* Created by martin on 2016-09-09.
*/
-public class MaterialsXmlStructureTests extends CommonFixture {
+public class MaterialsXmlStructureTests extends Capability2Tests {
@Test
public void verifyMaterialsXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Materials.xml")),
- "Metadata directory should contain Materials.xml file.");
+ new MaterialsXml(path);
}
@Test
public void verifyMaterialsXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Materials.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Base_Material_Table.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new MaterialsXml(path).verifyXmlAgainstSchema();
}
@Test
public void verifyMaterialsXmlElementNameIsUnique() {
- ArrayList names = getNameValues();
- for (String name : names) {
- Assert.assertEquals(Collections.frequency(names, name), 1,
- String.format("Materials.xml element Name should be unique. '%s' is not unique.", name));
- }
+ new MaterialsXml(path).verifyElementNameIsUnique();
}
@Test
public void verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName() {
- NodeList baseMaterialNodes = XMLUtils.getNodeList("//Base_Material[not(Name)]", Paths.get(path, "Metadata", "Materials.xml"));
- Assert.assertEquals(baseMaterialNodes.getLength(), 0, "Materials.xml element Base_Material requires a child element Name.");
+ new MaterialsXml(path).verifyAllBaseMaterialElementsHaveAChildNodeName();
}
@Test
public void verifyMaterialsXmlBaseMaterialNameIsValid() {
- ArrayList names = getNameValues();
-
- ArrayList invalidNames = new ArrayList<>();
-
- for (String name : names) {
- if(!name.matches("^BM_[a-zA-Z0-9_-]{0,29}")) {
- invalidNames.add(name);
- }
- }
-
- Assert.assertEquals(invalidNames.size(), 0,
- String.format("Materials.xml element Name is always in format \"BM__*\", " +
- "has a maximum of 32 characters, and can only contain letters, digits, " +
- "underscores, and hyphens. %s do not conform", invalidNames.toString()));
- }
-
- private ArrayList getNameValues() {
- NodeList nameNodes = XMLUtils.getNodeList("//Base_Material/Name", Paths.get(path, "Metadata", "Materials.xml"));
-
- ArrayList nameValues = new ArrayList<>();
-
- for (int i = 0; i < nameNodes.getLength(); i++) {
- Node currentItem = nameNodes.item(i);
- nameValues.add(currentItem.getTextContent());
- }
- return nameValues;
+ new MaterialsXml(path).verifyBaseMaterialNameIsValid();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MetadataXmlFile.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MetadataXmlFile.java
new file mode 100644
index 00000000..09985c1c
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/MetadataXmlFile.java
@@ -0,0 +1,42 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.xml.sax.SAXException;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public abstract class MetadataXmlFile {
+ protected File xmlFile;
+ protected File xsdFile;
+
+ public MetadataXmlFile(String path, String xmlFileName, String xsdFileName) {
+ Assert.assertTrue(Files.exists(Paths.get(path, "Metadata")), String.format("Metadata directory is missing."));
+
+ xmlFile = Paths.get(path, "Metadata", xmlFileName).toFile();
+ xsdFile = Paths.get(path, "Metadata", "Schema", xsdFileName).toFile();
+
+ verifyXmlFileExists();
+ }
+
+ public void verifyXmlAgainstSchema() throws IOException, SAXException {
+ SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
+
+ if (!errorHandler.noErrors()) {
+ Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
+ }
+ }
+
+ private void verifyXmlFileExists() {
+ Assert.assertTrue(Files.exists(xmlFile.toPath()), String.format("Metadata directory should contain %s file.", xmlFile.getName()));
+ Assert.assertTrue(Files.exists(xsdFile.toPath()), String.format("Metadata directory should contain %s file.", xsdFile.getName()));
+ }
+
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXml.java
new file mode 100644
index 00000000..505612fe
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXml.java
@@ -0,0 +1,10 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class ModelComponentsXml extends MetadataXmlFile {
+ public ModelComponentsXml(String path) {
+ super(path, "Model_Components.xml", "Model_Components.xsd");
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXmlStructureTests.java
index 68018c73..28bdd417 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/ModelComponentsXmlStructureTests.java
@@ -1,37 +1,23 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
/**
* Created by martin on 2016-09-02.
*/
-public class ModelComponentsXmlStructureTests extends CommonFixture {
+public class ModelComponentsXmlStructureTests extends Capability2Tests {
@Test
public void verifyModelComponentsXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Model_Components.xml")),
- "Metadata directory should contain Model_Components.xml file.");
+ new ModelComponentsXml(path);
}
@Test
public void verifyModelComponentsXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Model_Components.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Model_Components.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new ModelComponentsXml(path).verifyXmlAgainstSchema();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXml.java
new file mode 100644
index 00000000..7d453c84
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXml.java
@@ -0,0 +1,19 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.testng.Assert;
+
+import java.nio.file.Files;
+
+/**
+ * Created by martin on 2016-11-10.
+ */
+public class VendorAttributesXml extends MetadataXmlFile {
+ public VendorAttributesXml(String path) {
+ super(path, "Vendor_Attributes.xml", "Vendor_Attributes.xsd");
+ }
+
+ public void verifyVendorAttributesXsdFileExists() {
+ Assert.assertTrue(Files.exists(xsdFile.toPath()),
+ "If Vendor_Attributes.xml exists there should be a Vendor_Attributes.xsd in the Schema folder");
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXmlStructureTests.java
index dbfc0f03..6b99f273 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VendorAttributesXmlStructureTests.java
@@ -1,49 +1,28 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
/**
* Created by martin on 2016-09-09.
*/
-public class VendorAttributesXmlStructureTests extends CommonFixture {
+public class VendorAttributesXmlStructureTests extends Capability2Tests {
@Test
- public void verifyVendorAttributesXsdFileExists() {
- if (vendorAttributesXmlExists()) {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Schema", "Vendor_Attributes.xsd")),
- "If Vendor_Attributes.xml exists there should be a Vendor_Attributes.xsd in the Schema folder");
- }
+ public void verifyVendorAttributesXmlFileExists() {
+ new VendorAttributesXml(path);
}
@Test
- public void verifyVendorAttributesXmlAgainstSchema() throws IOException, SAXException {
- if (vendorAttributesXmlExists() && vendorAttributesXsdExists()) {
- File xmlFile = Paths.get(path, "Metadata", "Vendor_Attributes.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Vendor_Attributes.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
- }
- }
-
- private boolean vendorAttributesXmlExists() {
- return Paths.get(path, "Metadata", "Vendor_Attributes.xml").toFile().exists();
+ public void verifyVendorAttributesXsdFileExists() {
+ new VendorAttributesXml(path).verifyVendorAttributesXsdFileExists();
}
- private boolean vendorAttributesXsdExists() {
- return Paths.get(path, "Metadata", "Schema", "Vendor_Attributes.xsd").toFile().exists();
+ @Test
+ public void verifyVendorAttributesXmlAgainstSchema() throws IOException, SAXException {
+ new VendorAttributesXml(path).verifyXmlAgainstSchema();
}
}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXml.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXml.java
new file mode 100644
index 00000000..944de533
--- /dev/null
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXml.java
@@ -0,0 +1,45 @@
+package org.opengis.cite.cdb10.metadataAndVersioning;
+
+import org.opengis.cite.cdb10.util.XMLUtils;
+import org.testng.Assert;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by martin on 2016-09-20.
+ */
+public class VersionXml extends MetadataXmlFile {
+ public VersionXml(String path) {
+ super(path, "Version.xml", "Version.xsd");
+ }
+
+ public void verifyHasSpecificationElement() {
+ NodeList nodeList = XMLUtils.getNodeList("//Specification", xmlFile.toPath());
+
+ if (nodeList.getLength() == 0) {
+ Assert.fail("Version.xml Specification element is mandatory the element was not found.");
+ }
+ }
+
+ public void verifySpecificationVersionIsValid() {
+ NodeList nodeList = XMLUtils.getNodeList("//Specification", xmlFile.toPath());
+
+ ArrayList values = new ArrayList<>();
+ List VALID_VALUES = Arrays.asList("3.0", "3.1", "3.2");
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node currentItem = nodeList.item(i);
+ values.add(currentItem.getAttributes().getNamedItem("version").getNodeValue());
+ }
+
+ for (String value : values) {
+ Assert.assertTrue(VALID_VALUES.contains(value),
+ String.format("Version.xml Specification elements attribute version can have values " +
+ "of '3.0', '3.1', '3.1'. Value '%s' is not valid.", value));
+ }
+ }
+}
diff --git a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXmlStructureTests.java b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXmlStructureTests.java
index ad13ab0c..93d57c9a 100644
--- a/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXmlStructureTests.java
+++ b/src/main/java/org/opengis/cite/cdb10/metadataAndVersioning/VersionXmlStructureTests.java
@@ -1,70 +1,33 @@
package org.opengis.cite.cdb10.metadataAndVersioning;
import org.opengis.cite.cdb10.CommonFixture;
-import org.opengis.cite.cdb10.util.SchemaValidatorErrorHandler;
-import org.opengis.cite.cdb10.util.XMLUtils;
-import org.testng.Assert;
import org.testng.annotations.Test;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
/**
* Created by martin on 2016-09-06.
*/
-public class VersionXmlStructureTests extends CommonFixture {
+public class VersionXmlStructureTests extends Capability2Tests {
@Test
public void verifyVersionXmlFileExists() {
- Assert.assertTrue(Files.exists(Paths.get(path, "Metadata", "Version.xml")),
- "Metadata directory should contain Version.xml file.");
+ new VersionXml(path);
}
@Test
public void verifyVersionXmlAgainstSchema() throws IOException, SAXException {
- File xmlFile = Paths.get(path, "Metadata", "Version.xml").toFile();
- File xsdFile = Paths.get(path, "Metadata", "Schema", "Version.xsd").toFile();
-
- SchemaValidatorErrorHandler errorHandler = XMLUtils.validateXmlFileIsValid(xmlFile, xsdFile);
-
- if (!errorHandler.noErrors()) {
- Assert.fail(xmlFile.getName() + " does not contain valid XML. Errors: " + errorHandler.getMessages());
- }
+ new VersionXml(path).verifyXmlAgainstSchema();
}
@Test
public void verifyVersionXmlHasSpecificationElement() {
- NodeList nodeList = XMLUtils.getNodeList("//Specification", Paths.get(path, "Metadata", "Version.xml"));
-
- if (nodeList.getLength() == 0) {
- Assert.fail("Version.xml Specification element is mandatory the element was not found.");
- }
+ new VersionXml(path).verifyHasSpecificationElement();
}
@Test
public void verifyVersionXmlSpecificationVersionIsValid() {
- NodeList nodeList = XMLUtils.getNodeList("//Specification", Paths.get(path, "Metadata", "Version.xml"));
-
- ArrayList values = new ArrayList<>();
- List VALID_VALUES = Arrays.asList("3.0", "3.1", "3.2");
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node currentItem = nodeList.item(i);
- values.add(currentItem.getAttributes().getNamedItem("version").getNodeValue());
- }
-
- for (String value : values) {
- Assert.assertTrue(VALID_VALUES.contains(value),
- String.format("Version.xml Specification elements attribute version can have values " +
- "of '3.0', '3.1', '3.1'. Value '%s' is not valid.", value));
- }
+ new VersionXml(path).verifySpecificationVersionIsValid();
}
}
diff --git a/src/main/resources/org/opengis/cite/cdb10/testng.xml b/src/main/resources/org/opengis/cite/cdb10/testng.xml
index dee71af7..c41b7122 100644
--- a/src/main/resources/org/opengis/cite/cdb10/testng.xml
+++ b/src/main/resources/org/opengis/cite/cdb10/testng.xml
@@ -1,4 +1,5 @@
+
diff --git a/src/main/scripts/ctl/cdb10-suite.ctl b/src/main/scripts/ctl/cdb10-suite.ctl
index 0a6c6f65..8307cb88 100644
--- a/src/main/scripts/ctl/cdb10-suite.ctl
+++ b/src/main/scripts/ctl/cdb10-suite.ctl
@@ -54,7 +54,7 @@
-
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyCDBAttributesXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyCDBAttributesXmlStructureTests.java
index 80f077ab..cbc1e330 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyCDBAttributesXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyCDBAttributesXmlStructureTests.java
@@ -30,6 +30,19 @@ public VerifyCDBAttributesXmlStructureTests() {
testSuite = new CDBAttributesXmlStructureTests();
}
+ @Test
+ public void verifyCDBAttributesXmlExists_MetadataFolderDoesNotExist() throws IOException {
+ // setup
+ Files.delete(cdb_root.resolve(Paths.get("Metadata", "Schema")));
+ Files.delete(cdb_root.resolve(Paths.get("Metadata")));
+
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage("Metadata directory is missing.");
+
+ // execute
+ testSuite.verifyCDBAttributesXmlFileExists();
+ }
+
@Test
public void verifyCDBAttributesXmlExists_DoesNotExist() throws IOException {
expectedException.expect(AssertionError.class);
@@ -43,6 +56,7 @@ public void verifyCDBAttributesXmlExists_DoesNotExist() throws IOException {
public void verifyCDBAttributesXmlExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("CDB_Attributes.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Vector_Attributes.xsd")));
// execute
testSuite.verifyCDBAttributesXmlFileExists();
@@ -58,6 +72,15 @@ public void verifyCDBAttributesXmlAgainstSchema_XmlIsValid() throws IOException,
testSuite.verifyCDBAttributesXmlAgainstSchema();
}
+ @Test
+ public void verifyCDBAttributesXmlAgainstSchema_FileDoesNotExist() throws IOException, SAXException {
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage("Metadata directory should contain CDB_Attributes.xml file.");
+
+ // execute
+ testSuite.verifyCDBAttributesXmlAgainstSchema();
+ }
+
@Test
public void verifyCDBAttributesXmlAgainstSchema_XmlIsNotValid() throws IOException, SAXException {
// setup
@@ -84,7 +107,19 @@ public void verifyCodeIsAnInteger_CodeIsAnInteger() throws IOException {
Files.copy(XSD_FILE, schemaFolder.resolve("Vector_Attributes.xsd"), REPLACE_EXISTING);
// execute
- testSuite.verifyCodeIsAnInteger();
+ testSuite.verifyCDBAttributesXmlCodeIsAnInteger();
+ }
+
+ @Test
+ public void verifyCodeIsAnInteger_XsdFileDoesNotExist() throws IOException {
+ // setup
+ Files.copy(VALID_FILE, metadataFolder.resolve("CDB_Attributes.xml"), REPLACE_EXISTING);
+
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage("Metadata directory should contain Vector_Attributes.xsd file.");
+
+ // execute
+ testSuite.verifyCDBAttributesXmlCodeIsAnInteger();
}
@Test
@@ -99,7 +134,7 @@ public void verifyCodeIsAnInteger_CodeIsNotAnInteger() throws IOException {
expectedException.expectMessage(expectedMessage);
// execute
- testSuite.verifyCodeIsAnInteger();
+ testSuite.verifyCDBAttributesXmlCodeIsAnInteger();
}
@Test
@@ -109,7 +144,7 @@ public void verifySymbolIsUnique_SymbolIsUnique() throws IOException {
Files.copy(XSD_FILE, schemaFolder.resolve("Vector_Attributes.xsd"), REPLACE_EXISTING);
// execute
- testSuite.verifySymbolIsUnique();
+ testSuite.verifyCDBAttributesXmlSymbolIsUnique();
}
@Test
@@ -125,7 +160,7 @@ public void verifySymbolIsUnique_SymbolIsNotUnique() throws IOException {
expectedException.expectMessage(expectedMessage);
// execute
- testSuite.verifySymbolIsUnique();
+ testSuite.verifyCDBAttributesXmlSymbolIsUnique();
}
@Test
@@ -135,7 +170,7 @@ public void verifyValueHasAValidType_IsValid() throws IOException {
Files.copy(XSD_FILE, schemaFolder.resolve("Vector_Attributes.xsd"), REPLACE_EXISTING);
// execute
- testSuite.verifyValueHasAValidType();
+ testSuite.verifyCDBAttributesXmlValueHasAValidType();
}
@Test
@@ -151,7 +186,7 @@ public void verifyValueHasAValidType_IsNotValid() throws IOException {
expectedException.expectMessage(expectedMessage);
// execute
- testSuite.verifyValueHasAValidType();
+ testSuite.verifyCDBAttributesXmlValueHasAValidType();
}
@Test
@@ -161,7 +196,7 @@ public void verifyScalerCodeIsValid_IsValid() throws IOException {
Files.copy(XSD_FILE, schemaFolder.resolve("Vector_Attributes.xsd"), REPLACE_EXISTING);
// execute
- testSuite.verifyScalerCodeIsValid();
+ testSuite.verifyCDBAttributesXmlScalerCodeIsValid();
}
@Test
@@ -177,7 +212,7 @@ public void verifyScalerCodeIsValid_IsNotValid() throws IOException {
expectedException.expectMessage(expectedMessage);
// execute
- testSuite.verifyScalerCodeIsValid();
+ testSuite.verifyCDBAttributesXmlScalerCodeIsValid();
}
@Test
@@ -187,7 +222,7 @@ public void verifyUnitCodeIsValid_IsValid() throws IOException {
Files.copy(XSD_FILE, schemaFolder.resolve("Vector_Attributes.xsd"), REPLACE_EXISTING);
// execute
- testSuite.verifyUnitCodeIsValid();
+ testSuite.verifyCDBAttributesXmlUnitCodeIsValid();
}
@Test
@@ -203,6 +238,6 @@ public void verifyUnitCodeIsValid_IsNotValid() throws IOException {
expectedException.expectMessage(expectedMessage);
// execute
- testSuite.verifyUnitCodeIsValid();
+ testSuite.verifyCDBAttributesXmlUnitCodeIsValid();
}
}
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyConfigurationXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyConfigurationXmlStructureTests.java
index dfdd29bb..8de9e329 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyConfigurationXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyConfigurationXmlStructureTests.java
@@ -38,6 +38,7 @@ public void verifyConfigurationXmlExists_DoesNotExist() throws IOException {
public void verifyConfigurationXmlExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Configuration.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Configuration.xsd")));
// execute
testSuite.verifyConfigurationXmlFileExists();
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyDefaultsXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyDefaultsXmlStructureTests.java
index d01187db..c46c56a9 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyDefaultsXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyDefaultsXmlStructureTests.java
@@ -42,6 +42,7 @@ public void verifyDefaultsXmlExists_DoesNotExist() throws IOException {
public void verifyDefaultsXmlExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Defaults.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Defaults.xsd")));
// execute
testSuite.verifyDefaultsXmlFileExists();
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyGeomaticsAttributesXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyGeomaticsAttributesXmlStructureTests.java
index 5862fcf5..1c245ea6 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyGeomaticsAttributesXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyGeomaticsAttributesXmlStructureTests.java
@@ -30,7 +30,7 @@ public void verifyVendorAttributesXsdFileExists_DoesNotExist() throws IOExceptio
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Geomatics_Attributes.xml")));
expectedException.expect(AssertionError.class);
- expectedException.expectMessage("If Geomatics_Attributes.xml exists there should be a Geomatics_Attributes.xsd in the Schema folder");
+ expectedException.expectMessage("Metadata directory should contain Geomatics_Attributes.xsd file.");
// execute
testSuite.verifyGeomaticsAttributesXsdFileExists();
@@ -78,15 +78,19 @@ public void verifyGeomaticsAttributesXmlAgainstSchema_XmlIsNotValid() throws IOE
public void verifyGeomaticsAttributesXmlAgainstSchema_GeomaticsAttributesXmlFileDoesNotExist() throws IOException, SAXException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Geomatics_Attributes.xsd")));
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage("Metadata directory should contain Geomatics_Attributes.xml file.");
// execute
- testSuite.verifyGeomaticsAttributesXmlAgainstSchema(); // will not return an assertion error
+ testSuite.verifyGeomaticsAttributesXmlAgainstSchema();
}
@Test
public void verifyGeomaticsAttributesXmlAgainstSchema_GeomaticsAttributesXsdFileDoesNotExist() throws IOException, SAXException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Geomatics_Attributes.xml")));
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage("Metadata directory should contain Geomatics_Attributes.xsd file.");
// execute
testSuite.verifyGeomaticsAttributesXmlAgainstSchema(); // will not return an assertion error
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyLightsXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyLightsXmlStructureTests.java
index 49d3aab2..bd3760c9 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyLightsXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyLightsXmlStructureTests.java
@@ -41,6 +41,7 @@ public void verifyLightsXmlExists_DoesNotExist() throws IOException {
public void verifyLightsXmlExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Lights.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
// execute
testSuite.verifyLightsXmlFileExists();
@@ -80,6 +81,7 @@ public void verifyLightsXmlAgainstSchema_XmlIsNotValid() throws IOException, SAX
public void verifyLightsXmlHasUniqueCodes_LightsXmlHasUniqueCodes() throws IOException {
// setup
Files.copy(VALID_FILE, metadataFolder.resolve("Lights.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
// execute
testSuite.verifyLightsXmlHasUniqueCodes();
@@ -89,6 +91,7 @@ public void verifyLightsXmlHasUniqueCodes_LightsXmlHasUniqueCodes() throws IOExc
public void verifyLightsXmlHasUniqueCodes_LightsXmlDoesNotHaveUniqueCodes() throws IOException {
// setup
Files.copy(DUPLICATED_CODE_FILE, metadataFolder.resolve("Lights.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
expectedException.expect(AssertionError.class);
expectedException.expectMessage("Lights.xml element Light should have unique codes. Code '1' is not unique. expected [1] but found [2]");
@@ -101,6 +104,7 @@ public void verifyLightsXmlHasUniqueCodes_LightsXmlDoesNotHaveUniqueCodes() thro
public void verifyLightsXmlHasCodesWithinRange_LightsXmlHasCodesInRange() throws IOException {
// setup
Files.copy(VALID_FILE, metadataFolder.resolve("Lights.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
// execute
testSuite.verifyLightsXmlCodesAreWithinRange();
@@ -110,6 +114,7 @@ public void verifyLightsXmlHasCodesWithinRange_LightsXmlHasCodesInRange() throws
public void verifyLightsXmlHasCodesWithinRange_LightsXmlCodeIsOver9999() throws IOException {
// setup
Files.copy(INVALID_CODE_TEN_THOUSAND_FILE, metadataFolder.resolve("Lights.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
expectedException.expect(AssertionError.class);
expectedException.expectMessage("Lights.xml element Light should have a code from 0 - 9999 inclusive.");
@@ -122,6 +127,7 @@ public void verifyLightsXmlHasCodesWithinRange_LightsXmlCodeIsOver9999() throws
public void verifyLightsXmlHasCodesWithinRange_LightsXmlCodeLessThanZero() throws IOException {
// setup
Files.copy(INVALID_CODE_NEGATIVE_ONE_FILE, metadataFolder.resolve("Lights.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Lights.xsd")));
expectedException.expect(AssertionError.class);
expectedException.expectMessage("Lights.xml element Light should have a code from 0 - 9999 inclusive.");
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyMaterialsXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyMaterialsXmlStructureTests.java
index 2de2ef0a..0c6ca4a3 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyMaterialsXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyMaterialsXmlStructureTests.java
@@ -41,6 +41,7 @@ public void verifyMaterialsXmlFileExists_DoesNotExist() throws IOException {
public void verifyMaterialsXmlFileExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Materials.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
// execute
testSuite.verifyMaterialsXmlFileExists();
@@ -78,6 +79,7 @@ public void verifyMaterialsXmlAgainstSchema_XmlIsNotValid() throws IOException,
public void verifyMaterialsXmlElementNameIsUnique_IsUnique() throws IOException {
// setup
Files.copy(VALID_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
// execute
testSuite.verifyMaterialsXmlElementNameIsUnique();
@@ -87,6 +89,7 @@ public void verifyMaterialsXmlElementNameIsUnique_IsUnique() throws IOException
public void verifyMaterialsXmlElementNameIsUnique_IsNotUnique() throws IOException {
// setup
Files.copy(NAME_NOT_UNIQUE_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
String expectedMessage = "Materials.xml element Name should be unique. " +
"'BM_ASH-VOLCANIC' is not unique. expected [1] but found [2]";
@@ -102,6 +105,7 @@ public void verifyMaterialsXmlElementNameIsUnique_IsNotUnique() throws IOExcepti
public void verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName_TheyDo() throws IOException {
// setup
Files.copy(VALID_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
// execute
testSuite.verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName();
@@ -111,6 +115,7 @@ public void verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName_TheyDo()
public void verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName_TheyDoNot() throws IOException {
// setup
Files.copy(MISSING_NAME_ELEMENT_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
String expectedMessage = "Materials.xml element Base_Material requires a " +
"child element Name. expected [0] but found [1]";
@@ -126,6 +131,7 @@ public void verifyMaterialsXmlAllBaseMaterialElementsHaveAChildNodeName_TheyDoNo
public void verifyMaterialsXmlBaseMaterialNameIsValid_IsValid() throws Exception {
// setup
Files.copy(VALID_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
// execute
testSuite.verifyMaterialsXmlBaseMaterialNameIsValid();
@@ -135,6 +141,7 @@ public void verifyMaterialsXmlBaseMaterialNameIsValid_IsValid() throws Exception
public void verifyMaterialsXmlBaseMaterialNameIsValid_IsNotValid() throws Exception {
// setup
Files.copy(INVALID_NAME_VALUE_FILE, metadataFolder.resolve("Materials.xml"), REPLACE_EXISTING);
+ Files.createFile(schemaFolder.resolve(Paths.get("Base_Material_Table.xsd")));
String expectedMessage = "Materials.xml element Name is always in format \"BM__*\", " +
"has a maximum of 32 characters, and can only contain letters, digits, " +
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyModelComponentsXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyModelComponentsXmlStructureTests.java
index ffbd7ba0..7f93365c 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyModelComponentsXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyModelComponentsXmlStructureTests.java
@@ -38,6 +38,7 @@ public void verifyModelComponentsXmlExists_DoesNotExist() throws IOException {
public void verifyModelComponentsXmlExists_XmlDoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Model_Components.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Model_Components.xsd")));
// execute
testSuite.verifyModelComponentsXmlFileExists();
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVendorAttributesXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVendorAttributesXmlStructureTests.java
index 5594770c..d4ac1c33 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVendorAttributesXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVendorAttributesXmlStructureTests.java
@@ -27,8 +27,11 @@ public class VerifyVendorAttributesXmlStructureTests extends MetadataTestFixture
public void verifyVendorAttributesXsdFileExists_DoesNotExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Vendor_Attributes.xml")));
+
+ String expectedMessage = "Metadata directory should contain Vendor_Attributes.xsd file.";
+
expectedException.expect(AssertionError.class);
- expectedException.expectMessage("If Vendor_Attributes.xml exists there should be a Vendor_Attributes.xsd in the Schema folder");
+ expectedException.expectMessage(expectedMessage);
// execute
testSuite.verifyVendorAttributesXsdFileExists();
@@ -77,8 +80,13 @@ public void verifyVendorAttributesXmlAgainstSchema_VendorAttributesXmlFileDoesNo
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Vendor_Attributes.xsd")));
+ String expectedMessage = "Metadata directory should contain Vendor_Attributes.xml file.";
+
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage(expectedMessage);
+
// execute
- testSuite.verifyVendorAttributesXmlAgainstSchema(); // will not return an assertion error
+ testSuite.verifyVendorAttributesXmlAgainstSchema();
}
@Test
@@ -86,6 +94,11 @@ public void verifyVendorAttributesXmlAgainstSchema_VendorAttributesXsdFileDoesNo
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Vendor_Attributes.xml")));
+ String expectedMessage = "Metadata directory should contain Vendor_Attributes.xsd file.";
+
+ expectedException.expect(AssertionError.class);
+ expectedException.expectMessage(expectedMessage);
+
// execute
testSuite.verifyVendorAttributesXmlAgainstSchema(); // will not return an assertion error
}
diff --git a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVersionXmlStructureTests.java b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVersionXmlStructureTests.java
index 7aa6601b..d5142b07 100644
--- a/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVersionXmlStructureTests.java
+++ b/src/test/java/org/opengis/cite/cdb10/metadataAndVersioning/VerifyVersionXmlStructureTests.java
@@ -40,6 +40,7 @@ public void verifyVersionXmlFileExists_DoesNotExist() throws IOException {
public void verifyVersionXmlFileExists_DoesExist() throws IOException {
// setup
Files.createFile(metadataFolder.resolve(Paths.get("Version.xml")));
+ Files.createFile(schemaFolder.resolve(Paths.get("Version.xsd")));
// execute
testSuite.verifyVersionXmlFileExists();