/** * ============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.util; import static org.junit.Assert.*; import java.io.StringReader; import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.hamcrest.CoreMatchers; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.onap.aai.introspection.Version; public class GenerateXsdTest { private static final int maxSizeForXml = 20000; private String testXML; @Before public void setUp() throws Exception { //PowerMockito.mockStatic(GenerateXsd.class); StringBuilder sb = new StringBuilder(maxSizeForXml); addNamespace(sb); addRelationshipList(sb); addRelationship(sb); addRelatedToProperty(sb); addRelationshipData(sb); addBusiness(sb); addCustomers(sb); addCustomer(sb); addServiceSubscriptions(sb); addServiceSubscription(sb); addEndOfXML(sb); testXML = sb.toString(); } private void addNamespace(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addRelationshipList(StringBuilder sb ) { sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("/n"); sb.append("\n"); sb.append("\n"); } private void addRelationship(StringBuilder sb ) { sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append(""); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addRelatedToProperty(StringBuilder sb) { sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addRelationshipData(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addBusiness(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addCustomers(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addCustomer(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addServiceSubscriptions(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addServiceSubscription(StringBuilder sb){ sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); } private void addEndOfXML(StringBuilder sb){ sb.append("\n"); sb.append("\n"); } @Test public void test_processOxmFile() { GenerateXsd generateXsd = new GenerateXsd(); //GenerateXsd generateXsdSpy = PowerMockito.spy(generateXsd); //generateXsdSpy.processOxmFile(null, Version.getLatest(), testXML); String xsdResult = generateXsd.processOxmFile(null, Version.getLatest(), testXML); String relationshipListExpected = " \n \n \n \n \n \n "; String relatedToPropertyExpected = " \n \n \n \n \r\n \r\n @org.onap.aai.annotations.Metadata(description=\"Key part of a key/value pair\")\r\n \r\n \r\n \n" + " \n \r\n \r\n @org.onap.aai.annotations.Metadata(description=\"Value part of a key/value pair\")\r\n \r\n \r\n \n \n \n "; assertNotNull(xsdResult); } @Test public void test_generateSwaggerFromOxmFile( ) { GenerateXsd generateXsd = new GenerateXsd(); String customerOperation = " /business/customers/customer/{global-customer-id}:\n get:\n tags:\n - Business\n summary: returns customer"; String relationshipListDefinition = " relationship-list:\n properties:\n relationship:\n type: array\n items: \n $ref: \"#/definitions/relationship\""; String swaggerResult = generateXsd.generateSwaggerFromOxmFile(null, testXML); assertNotNull(swaggerResult); } }