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();