summaryrefslogtreecommitdiffstats
path: root/aai-schema
diff options
context:
space:
mode:
Diffstat (limited to 'aai-schema')
-rw-r--r--aai-schema/src/test/java/org/onap/aai/schema/ValidateEdgeRulesTest.java74
-rw-r--r--aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java571
2 files changed, 351 insertions, 294 deletions
diff --git a/aai-schema/src/test/java/org/onap/aai/schema/ValidateEdgeRulesTest.java b/aai-schema/src/test/java/org/onap/aai/schema/ValidateEdgeRulesTest.java
index 55558bc..694f4b9 100644
--- a/aai-schema/src/test/java/org/onap/aai/schema/ValidateEdgeRulesTest.java
+++ b/aai-schema/src/test/java/org/onap/aai/schema/ValidateEdgeRulesTest.java
@@ -8,7 +8,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -17,16 +17,10 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.aai.schema;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.DirectoryFileFilter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.junit.Test;
+import static org.junit.Assert.fail;
import java.io.File;
import java.io.FileReader;
@@ -36,7 +30,14 @@ import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
-import static org.junit.Assert.fail;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.junit.Test;
public class ValidateEdgeRulesTest {
@@ -50,24 +51,26 @@ public class ValidateEdgeRulesTest {
private static final String DBEDGERULES_IN = "IN";
@Test
- public void testOnlyOneDefaultPerEdgeRuleBetweenTwoNodetypes() throws IOException, ParseException {
+ public void testOnlyOneDefaultPerEdgeRuleBetweenTwoNodetypes()
+ throws IOException, ParseException {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- List<File> subDirs = Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
+ List<File> subDirs =
+ Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
List<String> multipleDefaultsPerList = new ArrayList<>();
for (File subDir : subDirs) {
String edgeRule = subDir.getAbsolutePath() + "/dbedgerules";
File[] edgeRules = new File(edgeRule).listFiles(File::isDirectory);
- List<String> dbEdgeRulesList = Arrays.stream(edgeRules).map(File::getAbsolutePath).collect(Collectors.toList());
-
+ List<String> dbEdgeRulesList =
+ Arrays.stream(edgeRules).map(File::getAbsolutePath).collect(Collectors.toList());
List<File> dbEdgeRulesFileList = new ArrayList<>();
- dbEdgeRulesList.forEach(s ->
- FileUtils.listFiles(new File(s), new RegexFileFilter(".*\\.json"), DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
- .forEach(dbEdgeRulesFileList::add));
+ dbEdgeRulesList.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.json"),
+ DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
+ .forEach(dbEdgeRulesFileList::add));
JSONParser jsonParser = new JSONParser();
@@ -75,7 +78,8 @@ public class ValidateEdgeRulesTest {
FileReader reader = new FileReader(file);
// Map the dbEdgeRules json file into a HashMap for reference
Map<String, Integer> dbEdgeRules = new HashMap<>();
- // Read JSON file. Expecting JSON file to read an object with a JSONArray names "rules"
+ // Read JSON file. Expecting JSON file to read an object with a JSONArray names
+ // "rules"
JSONObject jsonObj = (JSONObject) jsonParser.parse(reader);
JSONArray rules = (JSONArray) jsonObj.get(DBEDGERULES_RULES);
for (int i = 0; i < rules.size(); i++) {
@@ -85,7 +89,8 @@ public class ValidateEdgeRulesTest {
String direction = rule.get(DBEDGERULES_DIRECTION).toString();
String label = rule.get(DBEDGERULES_LABEL).toString();
String containsOtherV = rule.get(DBEDGERULES_CONTAINS_OTHER_V).toString();
- String isDefault = (rule.get("default") != null) ? rule.get("default").toString() : "false";
+ String isDefault =
+ (rule.get("default") != null) ? rule.get("default").toString() : "false";
// special case - cvlan-tag should be replaced with cvlan-tag-entry
if (fromNode.equals("cvlan-tag"))
@@ -102,49 +107,54 @@ public class ValidateEdgeRulesTest {
dbEdgeRulesMapPut(dbEdgeRules, fromNode, toNode, direction, label, isDefault);
}
- for(Map.Entry<String, Integer> entry : dbEdgeRules.entrySet()){
+ for (Map.Entry<String, Integer> entry : dbEdgeRules.entrySet()) {
String key = entry.getKey();
- if(entry.getValue() > 1){
- multipleDefaultsPerList.add("\n" + file.getAbsoluteFile() + " " + key + " count: " + entry.getValue());
+ if (entry.getValue() > 1) {
+ multipleDefaultsPerList.add("\n" + file.getAbsoluteFile() + " " + key
+ + " count: " + entry.getValue());
}
}
}
}
- if(!multipleDefaultsPerList.isEmpty()){
+ if (!multipleDefaultsPerList.isEmpty()) {
fail(multipleDefaultsPerList.stream().collect(Collectors.joining()));
}
}
/**
* Creating a hashmap to map what child nodes are associated to which parent nodes
- * according to the dbEdgeRules json files. A HashMap was chosen for the value of the map for O(1) lookup time.
+ * according to the dbEdgeRules json files. A HashMap was chosen for the value of the map for
+ * O(1) lookup time.
+ *
* @param from this variable will act as the key or value depending on the direction
* @param to this variable will act as the key or value depending on the direction
* @param direction dictates the direction of which vertex is dependent on which
- * @return The map returned will act as a dictionary to keep track of the parent nodes. Value of the map is a hashmap to help handle collision of multiple children to one parent
+ * @return The map returned will act as a dictionary to keep track of the parent nodes. Value of
+ * the map is a hashmap to help handle collision of multiple children to one parent
*/
- private Map<String, Integer> dbEdgeRulesMapPut(Map<String, Integer> dbEdgeRules, String from, String to, String direction, String label, String isDefault) {
+ private Map<String, Integer> dbEdgeRulesMapPut(Map<String, Integer> dbEdgeRules, String from,
+ String to, String direction, String label, String isDefault) {
if (isStringEmpty(from) || isStringEmpty(to) || isStringEmpty(direction))
return dbEdgeRules;
-
String temp;
- if(from.compareTo(to) > 0){
+ if (from.compareTo(to) > 0) {
temp = from;
from = to;
to = temp;
}
- String edgeInfo = String.format("%s%s%s[%s]%s", from, ((direction.equals("OUT")) ? "->": "<-"), to, label, isDefault);
+ String edgeInfo = String.format("%s%s%s[%s]%s", from,
+ ((direction.equals("OUT")) ? "->" : "<-"), to, label, isDefault);
if ("false".equals(isDefault)) {
return dbEdgeRules;
}
- if(dbEdgeRules.containsKey(edgeInfo)){
+ if (dbEdgeRules.containsKey(edgeInfo)) {
dbEdgeRules.put(edgeInfo, dbEdgeRules.get(edgeInfo) + 1);
} else {
dbEdgeRules.put(edgeInfo, 1);
diff --git a/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java b/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java
index 222ed05..0106dda 100644
--- a/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java
+++ b/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java
@@ -8,7 +8,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -17,21 +17,18 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.aai.schema;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.DirectoryFileFilter;
-import org.apache.commons.io.filefilter.FileFileFilter;
-import org.apache.commons.io.filefilter.FileFilterUtils;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.junit.Test;
-import org.junit.Ignore;
-import org.w3c.dom.*;
-import org.xml.sax.SAXException;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+import java.util.stream.Collectors;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -40,15 +37,20 @@ import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.*;
-import java.util.stream.Collectors;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
+import org.apache.commons.io.filefilter.FileFileFilter;
+import org.apache.commons.io.filefilter.FileFilterUtils;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.*;
+import org.xml.sax.SAXException;
public class ValidateOXMTest {
@@ -66,7 +68,8 @@ public class ValidateOXMTest {
private String ONAP = "onap";
@Test
- public void testFindXmlPropContainingSpace() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
+ public void testFindXmlPropContainingSpace()
+ throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
boolean foundIssue = false;
List<File> fileList = getLatestFiles();
@@ -76,13 +79,16 @@ public class ValidateOXMTest {
msg.append("\n");
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type/xml-properties/xml-property[@name!='description' and contains(@value,' ')]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String expression =
+ "/xml-bindings/java-types/java-type/xml-properties/xml-property[@name!='description' and contains(@value,' ')]";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
foundIssue = true;
msg.append("\t");
- msg.append(nodeList.item(i).getParentNode().getParentNode().getAttributes().getNamedItem("name").getNodeValue());
+ msg.append(nodeList.item(i).getParentNode().getParentNode().getAttributes()
+ .getNamedItem("name").getNodeValue());
msg.append("\n");
msg.append("\t");
msg.append("\n");
@@ -99,13 +105,15 @@ public class ValidateOXMTest {
/**
* Verifies that all of the node types in the oxm's have their uri templates.
+ *
* @throws XPathExpressionException
* @throws IOException
* @throws SAXException
* @throws ParserConfigurationException
*/
@Test
- public void allNodeTypesHaveAAIUriTemplate() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
+ public void allNodeTypesHaveAAIUriTemplate()
+ throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
boolean foundIssue = false;
List<File> fileList = getFiles();
@@ -115,18 +123,17 @@ public class ValidateOXMTest {
msg.append("\n");
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type[" +
- "(" +
- "count(xml-properties/xml-property[@name='container']) > 0 " +
- "or count(xml-properties/xml-property[@name='dependentOn']) > 0" +
- ") " +
- "and count(xml-properties/xml-property[@name='uriTemplate']) = 0 " +
- "]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String expression = "/xml-bindings/java-types/java-type[" + "("
+ + "count(xml-properties/xml-property[@name='container']) > 0 "
+ + "or count(xml-properties/xml-property[@name='dependentOn']) > 0" + ") "
+ + "and count(xml-properties/xml-property[@name='uriTemplate']) = 0 " + "]";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
- if (name.equals("InstanceFilter") || name.equals("InventoryResponseItems") || name.equals("InventoryResponseItem")) {
+ if (name.equals("InstanceFilter") || name.equals("InventoryResponseItems")
+ || name.equals("InventoryResponseItem")) {
continue;
}
foundIssue = true;
@@ -153,41 +160,49 @@ public class ValidateOXMTest {
for (File file : fileList) {
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type[count(xml-properties/xml-property[@name='indexedProps']) > 0]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String expression =
+ "/xml-bindings/java-types/java-type[count(xml-properties/xml-property[@name='indexedProps']) > 0]";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
Map<String, List<String>> nodeTypeBadIndexProps = new HashMap<>();
- for(int i = 0; i < nodeList.getLength(); i++){
+ for (int i = 0; i < nodeList.getLength(); i++) {
String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
- NodeList javaAttributesList = ((Element)nodeList.item(i)).getElementsByTagName("java-attributes");
+ NodeList javaAttributesList =
+ ((Element) nodeList.item(i)).getElementsByTagName("java-attributes");
Set<String> properties = new HashSet<>();
- for(int j = 0; j < javaAttributesList.getLength(); j++){
- NodeList elementList = ((Element)javaAttributesList.item(j)).getElementsByTagName("xml-element");
- for(int k = 0; k < elementList.getLength(); k++){
- properties.add(elementList.item(k).getAttributes().getNamedItem("name").getNodeValue());
+ for (int j = 0; j < javaAttributesList.getLength(); j++) {
+ NodeList elementList =
+ ((Element) javaAttributesList.item(j)).getElementsByTagName("xml-element");
+ for (int k = 0; k < elementList.getLength(); k++) {
+ properties.add(elementList.item(k).getAttributes().getNamedItem("name")
+ .getNodeValue());
}
}
- NodeList xmlPropertiesList = ((Element)nodeList.item(i)).getElementsByTagName("xml-properties");
+ NodeList xmlPropertiesList =
+ ((Element) nodeList.item(i)).getElementsByTagName("xml-properties");
List<String> badIndexedProps = new ArrayList<>();
boolean foundIssueInNodeType = false;
- for(int j = 0; j < xmlPropertiesList.getLength(); j++){
- NodeList xmlProperties = ((Element)xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
- for(int k = 0; k < xmlProperties.getLength(); k++){
- String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name").getNodeValue();
- if("indexedProps".equals(xmlProp)){
- String xmlPropValue = xmlProperties.item(k).getAttributes().getNamedItem("value").getNodeValue();
+ for (int j = 0; j < xmlPropertiesList.getLength(); j++) {
+ NodeList xmlProperties =
+ ((Element) xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
+ for (int k = 0; k < xmlProperties.getLength(); k++) {
+ String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name")
+ .getNodeValue();
+ if ("indexedProps".equals(xmlProp)) {
+ String xmlPropValue = xmlProperties.item(k).getAttributes()
+ .getNamedItem("value").getNodeValue();
- List<String> indexProps = Arrays
- .stream(xmlPropValue.split(","))
- .collect(Collectors.toList());
+ List<String> indexProps =
+ Arrays.stream(xmlPropValue.split(",")).collect(Collectors.toList());
- for(String indexProp : indexProps){
- if(!properties.contains(indexProp)){
+ for (String indexProp : indexProps) {
+ if (!properties.contains(indexProp)) {
foundIssueInNodeType = true;
badIndexedProps.add(indexProp);
}
@@ -197,19 +212,21 @@ public class ValidateOXMTest {
}
}
- if(foundIssueInNodeType){
- foundIssue =true;
+ if (foundIssueInNodeType) {
+ foundIssue = true;
nodeTypeBadIndexProps.put(name, badIndexedProps);
}
}
- if(!nodeTypeBadIndexProps.isEmpty()){
+ if (!nodeTypeBadIndexProps.isEmpty()) {
msg.append("\n");
msg.append("File: " + file.getAbsolutePath().replaceAll(".*aai-schema", ""));
msg.append("\n");
- for (Map.Entry<String, List<String>> nodeTypeBadIndex : nodeTypeBadIndexProps.entrySet()) {
+ for (Map.Entry<String, List<String>> nodeTypeBadIndex : nodeTypeBadIndexProps
+ .entrySet()) {
msg.append("NodeType: " + nodeTypeBadIndex.getKey());
- msg.append(" contains following indexed props that are not properties in object: ");
+ msg.append(
+ " contains following indexed props that are not properties in object: ");
msg.append(String.join(",", nodeTypeBadIndex.getValue()));
msg.append("\n");
}
@@ -233,38 +250,46 @@ public class ValidateOXMTest {
for (File file : fileList) {
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type[count(xml-properties/xml-property[@name='uniqueProps']) > 0]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String expression =
+ "/xml-bindings/java-types/java-type[count(xml-properties/xml-property[@name='uniqueProps']) > 0]";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
Map<String, List<String>> nodeTypeBadUniqueProps = new HashMap<>();
for (int i = 0; i < nodeList.getLength(); i++) {
String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
- NodeList javaAttributesList = ((Element) nodeList.item(i)).getElementsByTagName("java-attributes");
+ NodeList javaAttributesList =
+ ((Element) nodeList.item(i)).getElementsByTagName("java-attributes");
Set<String> properties = new HashSet<>();
for (int j = 0; j < javaAttributesList.getLength(); j++) {
- NodeList elementList = ((Element) javaAttributesList.item(j)).getElementsByTagName("xml-element");
+ NodeList elementList =
+ ((Element) javaAttributesList.item(j)).getElementsByTagName("xml-element");
for (int k = 0; k < elementList.getLength(); k++) {
- properties.add(elementList.item(k).getAttributes().getNamedItem("name").getNodeValue());
+ properties.add(elementList.item(k).getAttributes().getNamedItem("name")
+ .getNodeValue());
}
}
- NodeList xmlPropertiesList = ((Element) nodeList.item(i)).getElementsByTagName("xml-properties");
+ NodeList xmlPropertiesList =
+ ((Element) nodeList.item(i)).getElementsByTagName("xml-properties");
List<String> badUniqueProps = new ArrayList<>();
boolean foundIssueInNodeType = false;
for (int j = 0; j < xmlPropertiesList.getLength(); j++) {
- NodeList xmlProperties = ((Element) xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
+ NodeList xmlProperties =
+ ((Element) xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
for (int k = 0; k < xmlProperties.getLength(); k++) {
- String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name").getNodeValue();
+ String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name")
+ .getNodeValue();
if ("uniqueProps".equals(xmlProp)) {
- String xmlPropValue = xmlProperties.item(k).getAttributes().getNamedItem("value").getNodeValue();
+ String xmlPropValue = xmlProperties.item(k).getAttributes()
+ .getNamedItem("value").getNodeValue();
- List<String> uniqueProps = Arrays
- .stream(xmlPropValue.split(","))
- .collect(Collectors.toList());
+ List<String> uniqueProps =
+ Arrays.stream(xmlPropValue.split(",")).collect(Collectors.toList());
for (String uniqueProp : uniqueProps) {
if (!properties.contains(uniqueProp)) {
@@ -287,9 +312,11 @@ public class ValidateOXMTest {
msg.append("\n");
msg.append("File: " + file.getAbsolutePath().replaceAll(".*aai-schema", ""));
msg.append("\n");
- for (Map.Entry<String, List<String>> nodeTypeBadUnique : nodeTypeBadUniqueProps.entrySet()) {
+ for (Map.Entry<String, List<String>> nodeTypeBadUnique : nodeTypeBadUniqueProps
+ .entrySet()) {
msg.append("NodeType: " + nodeTypeBadUnique.getKey());
- msg.append(" contains following unique props that are not properties in object: ");
+ msg.append(
+ " contains following unique props that are not properties in object: ");
msg.append(String.join(",", nodeTypeBadUnique.getValue()));
msg.append("\n");
}
@@ -302,91 +329,99 @@ public class ValidateOXMTest {
}
}
-
/**
- * Verifies that all of the top level node types in the oxm's have their namespace in uri templates.
+ * Verifies that all of the top level node types in the oxm's have their namespace in uri
+ * templates.
+ *
* @throws XPathExpressionException
* @throws IOException
* @throws SAXException
* @throws ParserConfigurationException
*/
@Test
- public void verifyAllUriTemplateHaveNamespace()
- throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
- boolean foundIssue = false;
- List<File> fileList = getOxmSchemaFiles();
- fileList.addAll(getOnapOxmSchemaFiles());
- StringBuilder msg = new StringBuilder();
- for (File file : fileList) {
- msg.append(file.getAbsolutePath().replaceAll(".*aai-schema", ""));
- msg.append("\n");
- Document xmlDocument = getDocument(file);
- XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type["
- + "count(xml-properties/xml-property[@name='namespace']) > 0 " + "]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
-
- NodeList childNodeList = (NodeList) nodeList.item(i).getChildNodes();
- for (int j = 0; j < childNodeList.getLength(); j++) {
-
- String nodeName = childNodeList.item(j).getNodeName();
- NodeList xmlPropertyNodeList = childNodeList.item(j).getChildNodes();
- if (XMLPROPERTIES.equals(nodeName)) {
-
- String namespaceVal = "";
- String uriTemplateVal = "";
- for (int k = 0; k < xmlPropertyNodeList.getLength(); k++) {
-
- if ("xml-property".equals(xmlPropertyNodeList.item(k).getNodeName())) {
-
- NamedNodeMap attributes = xmlPropertyNodeList.item(k).getAttributes();
-
- if ("namespace".equals(attributes.getNamedItem("name").getNodeValue())) {
- namespaceVal = attributes.getNamedItem("value").getNodeValue();
- }
- if ("uriTemplate".equals(attributes.getNamedItem("name").getNodeValue())) {
- uriTemplateVal = attributes.getNamedItem("value").getNodeValue();
- }
+ public void verifyAllUriTemplateHaveNamespace()
+ throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
+ boolean foundIssue = false;
+ List<File> fileList = getOxmSchemaFiles();
+ fileList.addAll(getOnapOxmSchemaFiles());
+ StringBuilder msg = new StringBuilder();
+ for (File file : fileList) {
+ msg.append(file.getAbsolutePath().replaceAll(".*aai-schema", ""));
+ msg.append("\n");
+ Document xmlDocument = getDocument(file);
+ XPath xPath = XPathFactory.newInstance().newXPath();
+ String expression = "/xml-bindings/java-types/java-type["
+ + "count(xml-properties/xml-property[@name='namespace']) > 0 " + "]";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
- }
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
- }
+ NodeList childNodeList = (NodeList) nodeList.item(i).getChildNodes();
+ for (int j = 0; j < childNodeList.getLength(); j++) {
- if (!uriTemplateVal.startsWith("/" + namespaceVal + "/")) {
- foundIssue = true;
- msg.append("\t");
- msg.append(uriTemplateVal);
- msg.append("\n");
- }
+ String nodeName = childNodeList.item(j).getNodeName();
+ NodeList xmlPropertyNodeList = childNodeList.item(j).getChildNodes();
+ if (XMLPROPERTIES.equals(nodeName)) {
- }
- }
+ String namespaceVal = "";
+ String uriTemplateVal = "";
+ for (int k = 0; k < xmlPropertyNodeList.getLength(); k++) {
- }
- }
- if (foundIssue) {
- System.out.println(msg.toString());
- fail("uriTemplate doesnt start with /namespace/.");
- }
+ if ("xml-property".equals(xmlPropertyNodeList.item(k).getNodeName())) {
+
+ NamedNodeMap attributes =
+ xmlPropertyNodeList.item(k).getAttributes();
+
+ if ("namespace"
+ .equals(attributes.getNamedItem("name").getNodeValue())) {
+ namespaceVal = attributes.getNamedItem("value").getNodeValue();
+ }
+ if ("uriTemplate"
+ .equals(attributes.getNamedItem("name").getNodeValue())) {
+ uriTemplateVal =
+ attributes.getNamedItem("value").getNodeValue();
+ }
+
+ }
+
+ }
+
+ if (!uriTemplateVal.startsWith("/" + namespaceVal + "/")) {
+ foundIssue = true;
+ msg.append("\t");
+ msg.append(uriTemplateVal);
+ msg.append("\n");
+ }
+
+ }
+ }
- }
+ }
+ }
+ if (foundIssue) {
+ System.out.println(msg.toString());
+ fail("uriTemplate doesnt start with /namespace/.");
+ }
+ }
/**
* Verifies that all specified properties are indexed
- * Currently set to check that "model-invariant-id","model-version-id" which are aliased are indexed
+ * Currently set to check that "model-invariant-id","model-version-id" which are aliased are
+ * indexed
+ *
* @throws XPathExpressionException
* @throws IOException
* @throws SAXException
* @throws ParserConfigurationException
*/
@Test
- public void aliasedIndexedPropsAreInIndexedListWithPropName() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
+ public void aliasedIndexedPropsAreInIndexedListWithPropName()
+ throws XPathExpressionException, IOException, SAXException, ParserConfigurationException {
- final List<String> props = Arrays.asList("model-invariant-id","model-version-id");
+ final List<String> props = Arrays.asList("model-invariant-id", "model-version-id");
boolean foundIssue = false;
List<File> fileList = getLatestFiles();
@@ -398,31 +433,32 @@ public class ValidateOXMTest {
for (String prop : props) {
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type[" +
- "(" +
- "count(xml-properties/xml-property[@name='container']) > 0 " +
- "or count(xml-properties/xml-property[@name='dependentOn']) > 0" +
- ") " +
- "and count(xml-properties/xml-property[@name='indexedProps' and not(contains(@value,'" + prop + "'))]) > 0 " + //prop is not in indexed props list
- "and count(java-attributes/xml-element[@name='" + prop + "']) > 0 " + // prop is a property on obj
+ String expression = "/xml-bindings/java-types/java-type[" + "("
+ + "count(xml-properties/xml-property[@name='container']) > 0 "
+ + "or count(xml-properties/xml-property[@name='dependentOn']) > 0" + ") "
+ + "and count(xml-properties/xml-property[@name='indexedProps' and not(contains(@value,'"
+ + prop + "'))]) > 0 " + // prop is not in indexed props list
+ "and count(java-attributes/xml-element[@name='" + prop + "']) > 0 " + // prop is
+ // a
+ // property
+ // on obj
"]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument,
+ XPathConstants.NODESET);
if (nodeList.getLength() > 0) {
- msg.append("\t")
- .append(prop)
- .append("\n");
+ msg.append("\t").append(prop).append("\n");
}
for (int i = 0; i < nodeList.getLength(); i++) {
- String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
- if (name.equals("InstanceFilter") || name.equals("InventoryResponseItems") || name.equals("InventoryResponseItem")) {
+ String name =
+ nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
+ if (name.equals("InstanceFilter") || name.equals("InventoryResponseItems")
+ || name.equals("InventoryResponseItem")) {
continue;
}
foundIssue = true;
- msg.append("\t\t")
- .append(name)
- .append("\n");
+ msg.append("\t\t").append(name).append("\n");
}
}
}
@@ -441,9 +477,11 @@ public class ValidateOXMTest {
*/
@Ignore
@Test
- public void testSchemaValidationAgainstEdgeRules() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException, ParseException {
+ public void testSchemaValidationAgainstEdgeRules() throws XPathExpressionException, IOException,
+ SAXException, ParserConfigurationException, ParseException {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- List<File> subDirs = Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
+ List<File> subDirs =
+ Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
boolean success = true;
for (File subDir : subDirs) {
List<String> oxmSchemaList = new ArrayList<>();
@@ -474,33 +512,27 @@ public class ValidateOXMTest {
}
}).ifPresent(dbEdgeRulesList::add);
-
List<File> oxmSchemaFileList = new ArrayList<>();
List<File> dbEdgeRulesFileList = new ArrayList<>();
- oxmSchemaList.forEach(s ->
- FileUtils.listFiles(
- new File(s),
- new RegexFileFilter(".*\\.xml"),
+ oxmSchemaList.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.xml"),
DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
- .forEach(oxmSchemaFileList::add));
-
- dbEdgeRulesList.forEach(s ->
- FileUtils.listFiles(
- new File(s),
- new RegexFileFilter(".*\\.json"),
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
+ .forEach(oxmSchemaFileList::add));
+
+ dbEdgeRulesList.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.json"),
DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
- .forEach(dbEdgeRulesFileList::add));
+ .stream().filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
+ .forEach(dbEdgeRulesFileList::add));
// Map the dbEdgeRules json file into a HashMap for reference
Map<String, Set<String>> dbEdgeRules = new HashMap<>();
JSONParser jsonParser = new JSONParser();
for (File file : dbEdgeRulesFileList) {
FileReader reader = new FileReader(file);
- // Read JSON file. Expecting JSON file to read an object with a JSONArray names "rules"
+ // Read JSON file. Expecting JSON file to read an object with a JSONArray names
+ // "rules"
JSONObject jsonObj = (JSONObject) jsonParser.parse(reader);
JSONArray rules = (JSONArray) jsonObj.get(DBEDGERULES_RULES);
for (int i = 0; i < rules.size(); i++) {
@@ -534,25 +566,30 @@ public class ValidateOXMTest {
for (File file : oxmSchemaFileList) {
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String parentNodeExpression = "/xml-bindings/java-types/java-type/xml-properties/xml-property[@name='dependentOn']";
- NodeList parentNodeList = (NodeList) xPath.compile(parentNodeExpression).evaluate(xmlDocument, XPathConstants.NODESET);
- String childNodeExpression = "/xml-bindings/java-types/java-type[" +
- "(" +
- "count(xml-properties/xml-property[@name='dependentOn']) > 0" +
- ")]";
- NodeList childNodeList = (NodeList) xPath.compile(childNodeExpression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String parentNodeExpression =
+ "/xml-bindings/java-types/java-type/xml-properties/xml-property[@name='dependentOn']";
+ NodeList parentNodeList = (NodeList) xPath.compile(parentNodeExpression)
+ .evaluate(xmlDocument, XPathConstants.NODESET);
+ String childNodeExpression = "/xml-bindings/java-types/java-type[" + "("
+ + "count(xml-properties/xml-property[@name='dependentOn']) > 0" + ")]";
+ NodeList childNodeList = (NodeList) xPath.compile(childNodeExpression)
+ .evaluate(xmlDocument, XPathConstants.NODESET);
for (int i = 0; i < parentNodeList.getLength(); i++) {
- // Obtain the xml-root-element field by tracing the childNodes from the java-type parent node
+ // Obtain the xml-root-element field by tracing the childNodes from the
+ // java-type parent node
for (int j = 0; j < childNodeList.item(i).getChildNodes().getLength(); j++) {
- if (childNodeList.item(i).getChildNodes().item(j).getNodeName().equals(XMLROOTELEMENT)) {
+ if (childNodeList.item(i).getChildNodes().item(j).getNodeName()
+ .equals(XMLROOTELEMENT)) {
// The parent node
- String dependentOn = parentNodeList.item(i).getAttributes().getNamedItem("value").getNodeValue();
+ String dependentOn = parentNodeList.item(i).getAttributes()
+ .getNamedItem("value").getNodeValue();
// The child node
- String xmlRootElement = childNodeList.item(i).getChildNodes().item(j).getAttributes().getNamedItem("name").getNodeValue();
+ String xmlRootElement = childNodeList.item(i).getChildNodes().item(j)
+ .getAttributes().getNamedItem("name").getNodeValue();
Set<String> childSet;
String[] parents = dependentOn.split(",");
@@ -572,7 +609,8 @@ public class ValidateOXMTest {
}
}
- // Compare the OXM file against the dbEdgeRules file. check what is missing in dbEdgeRules from the oxm files.
+ // Compare the OXM file against the dbEdgeRules file. check what is missing in
+ // dbEdgeRules from the oxm files.
Set<String> oxmKeySet = oxmSchemaFile.keySet();
for (String key : oxmKeySet) {
Set<String> oxmChildren = oxmSchemaFile.get(key);
@@ -581,7 +619,9 @@ public class ValidateOXMTest {
// Check if the parent vertex exists at all in the dbEdgeRules file
if (dbEdgeRulesChildren == null || dbEdgeRulesChildren.isEmpty()) {
for (String oxmChild : oxmChildren) {
- System.out.println("ERROR: dbEdgeRules under directory '" + subDir.toString() + "' does not contain parent '" + key + "' and child '" + oxmChild + "' relationship");
+ System.out.println("ERROR: dbEdgeRules under directory '"
+ + subDir.toString() + "' does not contain parent '" + key
+ + "' and child '" + oxmChild + "' relationship");
}
success = false;
continue;
@@ -591,7 +631,9 @@ public class ValidateOXMTest {
if (!oxmChildren.equals(dbEdgeRulesChildren)) {
for (String oxmChild : oxmChildren) {
if (!dbEdgeRulesChildren.contains(oxmChild)) {
- System.out.println("ERROR: dbEdgeRules under directory '" + subDir.toString() + "' does not contain parent '" + key + "' and child '" + oxmChild + "' relationship");
+ System.out.println("ERROR: dbEdgeRules under directory '"
+ + subDir.toString() + "' does not contain parent '" + key
+ + "' and child '" + oxmChild + "' relationship");
success = false;
}
}
@@ -607,7 +649,9 @@ public class ValidateOXMTest {
// Check if the parent vertex exists at all in the dbEdgeRules file
if (oxmChildren == null || oxmChildren.isEmpty()) {
for (String dbEdgeRuleChild : dbEdgeRulesChildren) {
- System.out.println("ERROR: oxms under directory '" + subDir.toString() + "' do not contain parent '" + key + "' and child '" + dbEdgeRuleChild + "' relationship");
+ System.out.println("ERROR: oxms under directory '" + subDir.toString()
+ + "' do not contain parent '" + key + "' and child '" + dbEdgeRuleChild
+ + "' relationship");
}
success = false;
continue;
@@ -617,7 +661,9 @@ public class ValidateOXMTest {
if (!dbEdgeRulesChildren.equals(oxmChildren)) {
for (String dbEdgeRuleChild : dbEdgeRulesChildren) {
if (!oxmChildren.contains(dbEdgeRuleChild)) {
- System.out.println("ERROR: oxms under directory '" + subDir.toString() + "' do not contain parent '" + key + "' and child '" + dbEdgeRuleChild + "' relationship");
+ System.out.println("ERROR: oxms under directory '" + subDir.toString()
+ + "' do not contain parent '" + key + "' and child '"
+ + dbEdgeRuleChild + "' relationship");
success = false;
}
}
@@ -632,27 +678,34 @@ public class ValidateOXMTest {
*
*/
@Test
- public void testDataOwnerWithOwnerCheck() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException, ParseException {
+ public void testDataOwnerWithOwnerCheck() throws XPathExpressionException, IOException,
+ SAXException, ParserConfigurationException, ParseException {
List<File> fileList = getLatestFiles();
for (File file : fileList) {
Document xmlDocument = getDocument(file);
XPath xPath = XPathFactory.newInstance().newXPath();
- String expression = "/xml-bindings/java-types/java-type/java-attributes/xml-element[@name='data-owner']";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
+ String expression =
+ "/xml-bindings/java-types/java-type/java-attributes/xml-element[@name='data-owner']";
+ NodeList nodeList =
+ (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
List<String> typeMissingOwnerCheck = new ArrayList<>();
for (int i = 0; i < nodeList.getLength(); i++) {
- String type = nodeList.item(i).getParentNode().getParentNode().getAttributes().getNamedItem("name").getNodeValue();
- NodeList xmlPropertiesList = ((Element) nodeList.item(i)).getElementsByTagName("xml-properties");
+ String type = nodeList.item(i).getParentNode().getParentNode().getAttributes()
+ .getNamedItem("name").getNodeValue();
+ NodeList xmlPropertiesList =
+ ((Element) nodeList.item(i)).getElementsByTagName("xml-properties");
boolean missingOwnerCheck = true;
for (int j = 0; j < xmlPropertiesList.getLength(); j++) {
- NodeList xmlProperties = ((Element) xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
+ NodeList xmlProperties =
+ ((Element) xmlPropertiesList.item(j)).getElementsByTagName("xml-property");
for (int k = 0; k < xmlProperties.getLength(); k++) {
- String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name").getNodeValue();
+ String xmlProp = xmlProperties.item(k).getAttributes().getNamedItem("name")
+ .getNodeValue();
if ("ownerCheck".equals(xmlProp)) {
missingOwnerCheck = false;
@@ -671,13 +724,15 @@ public class ValidateOXMTest {
}
if (!typeMissingOwnerCheck.isEmpty()) {
- fail(file.getAbsolutePath().replaceAll(".*aai-schema", "") + ": " + String.join(", ", typeMissingOwnerCheck));
+ fail(file.getAbsolutePath().replaceAll(".*aai-schema", "") + ": "
+ + String.join(", ", typeMissingOwnerCheck));
}
}
}
/**
* Null check for strings
+ *
* @param s
* @return
*/
@@ -687,13 +742,17 @@ public class ValidateOXMTest {
/**
* Creating a hashmap to map what child nodes are associated to which parent nodes
- * according to the dbEdgeRules json files. A HashMap was chosen for the value of the map for O(1) lookup time.
+ * according to the dbEdgeRules json files. A HashMap was chosen for the value of the map for
+ * O(1) lookup time.
+ *
* @param from this variable will act as the key or value depending on the direction
* @param to this variable will act as the key or value depending on the direction
* @param direction dictates the direction of which vertex is dependent on which
- * @return The map returned will act as a dictionary to keep track of the parent nodes. Value of the map is a hashmap to help handle collision of multiple children to one parent
+ * @return The map returned will act as a dictionary to keep track of the parent nodes. Value of
+ * the map is a hashmap to help handle collision of multiple children to one parent
*/
- private Map<String, Set<String>> dbEdgeRulesMapPut(Map<String, Set<String>> dbEdgeRules, String from, String to, String direction) {
+ private Map<String, Set<String>> dbEdgeRulesMapPut(Map<String, Set<String>> dbEdgeRules,
+ String from, String to, String direction) {
if (isStringEmpty(from) || isStringEmpty(to) || isStringEmpty(direction))
return dbEdgeRules;
@@ -722,12 +781,10 @@ public class ValidateOXMTest {
private List<File> getFiles() {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- return FileUtils.listFiles(
- currentRelativePath.toFile(),
- new RegexFileFilter(".*\\.xml"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
+ return FileUtils
+ .listFiles(currentRelativePath.toFile(), new RegexFileFilter(".*\\.xml"),
+ DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
.filter(file -> !file.getAbsolutePath().contains("onap")) // skips onap for checks
.collect(Collectors.toList());
}
@@ -735,68 +792,64 @@ public class ValidateOXMTest {
private List<File> getOxmSchemaFiles() {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- return FileUtils.listFiles(
- currentRelativePath.toFile(),
- new RegexFileFilter(".*\\.xml"),
+ return FileUtils
+ .listFiles(currentRelativePath.toFile(), new RegexFileFilter(".*\\.xml"),
DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
- .filter(file -> file.getAbsolutePath().contains("aai_schema_oxm"))
- .filter(file -> !file.getAbsolutePath().contains("onap")) // skips onap for checks
- .collect(Collectors.toList());
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
+ .filter(file -> file.getAbsolutePath().contains("aai_schema_oxm"))
+ .filter(file -> !file.getAbsolutePath().contains("onap")) // skips onap for checks
+ .collect(Collectors.toList());
}
private List<File> getOnapOxmSchemaFiles() {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- return FileUtils.listFiles(
- currentRelativePath.toFile(),
- new RegexFileFilter(".*\\.xml"),
+ return FileUtils
+ .listFiles(currentRelativePath.toFile(), new RegexFileFilter(".*\\.xml"),
DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
- .filter(file -> file.getAbsolutePath().contains("aai_oxm"))
- .collect(Collectors.toList());
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
+ .filter(file -> file.getAbsolutePath().contains("aai_oxm"))
+ .collect(Collectors.toList());
}
private List<File> getAaiSchemaOxmFiles() {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- return FileUtils.listFiles(
- currentRelativePath.toFile(),
- new RegexFileFilter(".*\\.xml"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
+ return FileUtils
+ .listFiles(currentRelativePath.toFile(), new RegexFileFilter(".*\\.xml"),
+ DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
.filter(file -> !file.getAbsolutePath().contains("onap")) // skips onap for checks
.collect(Collectors.toList());
}
private List<File> getDbEdgeRulesFiles() {
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- return FileUtils.listFiles(
- currentRelativePath.toFile(),
- new RegexFileFilter(".*\\.json"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
+ return FileUtils
+ .listFiles(currentRelativePath.toFile(), new RegexFileFilter(".*\\.json"),
+ DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
.filter(file -> !file.getAbsolutePath().contains("onap")) // skips onap for checks
.collect(Collectors.toList());
}
/**
* Finds all of the oxm files for the latest version.
+ *
* @return list of the latest version of the oxm files.
*/
private List<File> getLatestDbEdgeRulesFiles(String fileDirectory) {
List<String> latest = new ArrayList<>();
- String currentRelativePath = Paths.get("../aai-schema/src/main/resources/" + fileDirectory + "/dbedgerules").toAbsolutePath().toString();
+ String currentRelativePath =
+ Paths.get("../aai-schema/src/main/resources/" + fileDirectory + "/dbedgerules")
+ .toAbsolutePath().toString();
File[] oxms = new File(currentRelativePath).listFiles(File::isDirectory);
Arrays.stream(oxms).map(File::getAbsolutePath).max(new Comparator<String>() {
public int compare(String o1, String o2) {
return extractInt(o1) - extractInt(o2);
}
+
int extractInt(String s) {
String num = s.replaceAll("\\D", "");
return num.isEmpty() ? 0 : Integer.parseInt(num);
@@ -804,26 +857,24 @@ public class ValidateOXMTest {
}).ifPresent(latest::add);
List<File> latestFiles = new ArrayList<>();
- latest.forEach(s ->
- FileUtils.listFiles(
- new File(s),
- new RegexFileFilter(".*\\.json"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
- .forEach(latestFiles::add));
+ latest.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.json"), DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("DbEdgeRules"))
+ .forEach(latestFiles::add));
return latestFiles;
}
/**
* Finds all of the oxm files for the latest version.
+ *
* @return list of the latest version of the oxm files.
*/
private List<File> getLatestFiles() {
List<String> latest = new ArrayList<>();
Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath();
- List<File> subDirs = Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
+ List<File> subDirs =
+ Arrays.asList(currentRelativePath.toFile().listFiles(File::isDirectory));
for (File subDir : subDirs) {
String oxm = subDir.getAbsolutePath() + "/oxm";
File[] oxms = new File(oxm).listFiles(File::isDirectory);
@@ -831,6 +882,7 @@ public class ValidateOXMTest {
public int compare(String o1, String o2) {
return extractInt(o1) - extractInt(o2);
}
+
int extractInt(String s) {
String num = s.replaceAll("\\D", "");
return num.isEmpty() ? 0 : Integer.parseInt(num);
@@ -839,30 +891,30 @@ public class ValidateOXMTest {
}
List<File> latestFiles = new ArrayList<>();
- latest.forEach(s ->
- FileUtils.listFiles(
- new File(s),
- new RegexFileFilter(".*\\.xml"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
- .forEach(latestFiles::add));
+ latest.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.xml"), DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
+ .forEach(latestFiles::add));
return latestFiles;
}
/**
* Finds all of the oxm files for the latest version.
+ *
* @return list of the latest version of the oxm files.
*/
private List<File> getLatestFiles(String fileDirectory) {
List<String> latest = new ArrayList<>();
- String currentRelativePath = Paths.get("../aai-schema/src/main/resources/" + fileDirectory + "/oxm").toAbsolutePath().toString();
+ String currentRelativePath =
+ Paths.get("../aai-schema/src/main/resources/" + fileDirectory + "/oxm").toAbsolutePath()
+ .toString();
File[] oxms = new File(currentRelativePath).listFiles(File::isDirectory);
Arrays.stream(oxms).map(File::getAbsolutePath).max(new Comparator<String>() {
public int compare(String o1, String o2) {
return extractInt(o1) - extractInt(o2);
}
+
int extractInt(String s) {
String num = s.replaceAll("\\D", "");
return num.isEmpty() ? 0 : Integer.parseInt(num);
@@ -870,21 +922,15 @@ public class ValidateOXMTest {
}).ifPresent(latest::add);
List<File> latestFiles = new ArrayList<>();
- latest.forEach(s ->
- FileUtils.listFiles(
- new File(s),
- new RegexFileFilter(".*\\.xml"),
- DirectoryFileFilter.DIRECTORY)
- .stream()
- .filter(file -> file.getAbsolutePath().contains("oxm"))
- .forEach(latestFiles::add));
+ latest.forEach(s -> FileUtils
+ .listFiles(new File(s), new RegexFileFilter(".*\\.xml"), DirectoryFileFilter.DIRECTORY)
+ .stream().filter(file -> file.getAbsolutePath().contains("oxm"))
+ .forEach(latestFiles::add));
return latestFiles;
}
- //TODO test that all oxm xml are valid xml
-
-
+ // TODO test that all oxm xml are valid xml
public String printNodeList(NodeList nodeList, Document doc) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
@@ -900,7 +946,8 @@ public class ValidateOXMTest {
}
- private Document getDocument(File file) throws ParserConfigurationException, SAXException, IOException {
+ private Document getDocument(File file)
+ throws ParserConfigurationException, SAXException, IOException {
InputStream fileIS = new FileInputStream(file);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();