X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=aai-schema%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fschema%2FValidateOXM.java;fp=aai-schema%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fschema%2FValidateOXM.java;h=0000000000000000000000000000000000000000;hb=0ca153b6f70c0b18e88ab802b67f7a10065269e1;hp=ffdbf3dd22d2c51157e934454a4e8c25953f381c;hpb=bdc84f8bedd6e9f83d45fd8d116de10ae2c8c92a;p=aai%2Faai-common.git diff --git a/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXM.java b/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXM.java deleted file mode 100644 index ffdbf3dd..00000000 --- a/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXM.java +++ /dev/null @@ -1,160 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * 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 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -package org.onap.aai.schema; - - -//import org.junit.Test; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.filefilter.DirectoryFileFilter; -import org.apache.commons.io.filefilter.RegexFileFilter; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -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.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -public class ValidateOXM { - - @Test - public void testFindXmlPropContainingSpace() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException { - boolean foundIssue = false; - List fileList = getFiles(); - - 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/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("\n"); - msg.append("\t"); - msg.append("\n"); - } - - } - - if (foundIssue) { - System.out.println(msg.toString()); - fail("Node type xml-property should have space."); - } - - } - - /** - * 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 { - boolean foundIssue = false; - List fileList = getFiles(); - - 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='container']) > 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")) { - continue; - } - foundIssue = true; - msg.append("\t"); - msg.append(name); - msg.append("\n"); - } - } - if (foundIssue) { - System.out.println(msg.toString()); - fail("Missing uriTemplate in oxm."); - } - - } - - private List 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")) - .collect(Collectors.toList()); - } - - //TODO test that all oxm xml are valid xml - - - - public String printNodeList(NodeList nodeList, Document doc) throws IOException { - StringBuilder stringBuilder = new StringBuilder(); - for (int i = 0; i < nodeList.getLength(); i++) { - stringBuilder.append(printNode(nodeList.item(i), doc)).append("\n"); - } - return stringBuilder.toString(); - } - - public String printNode(Node node, Document document) throws IOException { - StringWriter stringWriter = new StringWriter(); - return stringWriter.toString(); - - } - - private Document getDocument(File file) throws ParserConfigurationException, SAXException, IOException { - InputStream fileIS = new FileInputStream(file); - DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = builderFactory.newDocumentBuilder(); - return builder.parse(fileIS); - } - -}