/**
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
* Copyright © 2017 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=========================================================
*
* ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
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);
}
}