From 21b104df3c85d99917719768323c1745e2607f49 Mon Sep 17 00:00:00 2001 From: "LaMont, William (wl2432)" Date: Thu, 1 Aug 2019 14:10:24 -0400 Subject: Replace relationship array with object in generated swagger Issue-ID: AAI-2001 Change-Id: I1c3e5cbc0fe696a486238f795b932fd825572fcf Signed-off-by: LaMont, William (wl2432) --- .../aai/schemagen/genxsd/NodesYAMLfromOXMTest.java | 93 ++++++------- .../onap/aai/schemagen/genxsd/XSDElementTest.java | 22 ++- .../onap/aai/schemagen/genxsd/YAMLfromOXMTest.java | 154 +++++++++++++-------- 3 files changed, 162 insertions(+), 107 deletions(-) (limited to 'aai-schema-gen/src/test/java') diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java index f926b40..eb2ce81 100644 --- a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java @@ -250,37 +250,32 @@ public class NodesYAMLfromOXMTest { } public String YAMLheader() { StringBuilder sb = new StringBuilder(1500); - sb.append("swagger: \"2.0\"\n"); - sb.append("info:\n"); - sb.append(" description: |\n"); - sb.append("\n"); - sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)\n"); - sb.append("\n"); - sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n"); - sb.append("\n"); - sb.append(" Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n"); - sb.append("\n"); - sb.append(" You may obtain a copy of the License at\n"); - sb.append("\n"); - sb.append(" (https://creativecommons.org/licenses/by/4.0/)\n"); - sb.append("\n"); - sb.append(" 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.\n"); - sb.append("\n"); - sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n"); - sb.append(" version: \"v11\"\n"); - sb.append(" title: Active and Available Inventory REST API\n"); - sb.append(" license:\n"); - sb.append(" name: Apache 2.0\n"); - sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); - sb.append(" contact:\n"); - sb.append(" name:\n"); - sb.append(" url:\n"); - sb.append(" email:\n"); - sb.append("host:\n"); - sb.append("basePath: /aai/v11\n"); - sb.append("schemes:\n"); - sb.append(" - https\n"); - sb.append("paths:\n"); + sb.append("swagger: \"2.0\"\n"); + sb.append("info:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" description: |\n"); + sb.append("\n"); + sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)" + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n\n"); + sb.append(" Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License." + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + sb.append(" You may obtain a copy of the License at\n"); + sb.append("\n"); + sb.append(" (https://creativecommons.org/licenses/by/4.0/)" + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + sb.append(" 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.\n\n"); + sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions." + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" version: \"v11\"" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" title: Active and Available Inventory REST API" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" license:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" name: Apache 2.0" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" contact:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" name:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" url:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" email:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("host:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("basePath: /aai/v11" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("schemes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" - https\n"); + sb.append("paths:" + OxmFileProcessor.LINE_SEPARATOR); return sb.toString(); } @@ -440,12 +435,12 @@ public class NodesYAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/definitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" $ref: \"#/definitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); @@ -523,12 +518,12 @@ public class NodesYAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/patchDefinitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); @@ -610,12 +605,12 @@ public class NodesYAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/definitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" $ref: \"#/definitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java index a9c7880..6b21dfd 100644 --- a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java @@ -81,7 +81,19 @@ public class XSDElementTest { addEndOfXML(sb); testXML = sb.toString(); init(); -} + } + + public void setUpRelationship( ) throws Exception { + StringBuilder sb = new StringBuilder(maxSizeForXml); + addNamespaceNoInventory(sb); + addRelationship(sb); + addRelationshipList(sb); + addRelatedToProperty(sb); + addRelationshipData(sb); + addEndOfXML(sb); + testXML = sb.toString(); + init(); + } private void addNamespace(StringBuilder sb){ sb.append("\n"); @@ -96,6 +108,14 @@ public class XSDElementTest { sb.append("\n"); sb.append("\n"); } + + private void addNamespaceNoInventory(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } private void addBusiness(StringBuilder sb){ sb.append("\n"); diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java index 7246870..7f746ec 100644 --- a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java @@ -57,6 +57,7 @@ import java.util.TreeSet; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; @RunWith(SpringJUnit4ClassRunner.class) @@ -99,29 +100,41 @@ public class YAMLfromOXMTest { System.setProperty("AJSC_HOME", "."); System.setProperty("BUNDLECONFIG_DIR", "src/test/resources/bundleconfig-local"); System.setProperty("aai.service.name", SERVICE_NAME); + } + + - XSDElementTest x = new XSDElementTest(); - x.setUp(); - testXML = x.testXML; - logger.debug(testXML); - BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); - bw.write(testXML); - bw.close(); - BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); - bw1.write(EdgeDefs()); - bw1.close(); - + @Before + public void setUp() throws Exception { + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.testXML; + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw1.write(EdgeDefs()); + bw1.close(); + } + + public void setupRelationship() throws Exception{ + XSDElementTest x = new XSDElementTest(); + x.setUpRelationship(); + testXML = x.testXML; + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw1.write(EdgeDefs()); + bw1.close(); } - @Before - public void setUp() throws Exception { - - } - @Test public void AtestIngestors() throws EdgeRuleNotFoundException { Multimap results = edgeIngestor.getAllRules(schemaVersions.getDefaultVersion()); @@ -162,7 +175,6 @@ public class YAMLfromOXMTest { assertThat("FileContent-TestProcess:\n"+fileContent,fileContent, is(YAMLresult())); } - @Test public void testYAMLfromOXMFileVersionFile() throws IOException { String outfileName = "testXML.xml"; @@ -200,6 +212,27 @@ public class YAMLfromOXMTest { } assertThat("FileContent-OXMStringVersionFile:\n"+fileContent,fileContent, is(YAMLresult())); } + + @Test + public void testRelationshipListYAMLfromOXMStringVersionFile() { + try { + setupRelationship(); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + fileContent = yamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + boolean matchFound = fileContent.contains(( YAMLRelationshipList())); + assertTrue("RelationshipListFormat:\n", matchFound); + } @Test public void testAppendDefinitions() { @@ -278,36 +311,33 @@ public class YAMLfromOXMTest { public String YAMLheader() { StringBuilder sb = new StringBuilder(1500); sb.append("swagger: \"2.0\"\n"); - sb.append("info:\n"); + sb.append("info:" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" description: |\n"); sb.append("\n"); - sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)\n"); - sb.append("\n"); - sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n"); - sb.append("\n"); + sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)" + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved." + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); sb.append(" Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n"); sb.append("\n"); sb.append(" You may obtain a copy of the License at\n"); sb.append("\n"); sb.append(" (https://creativecommons.org/licenses/by/4.0/)\n"); sb.append("\n"); - sb.append(" 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.\n"); - sb.append("\n"); - sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n"); - sb.append(" version: \"v11\"\n"); - sb.append(" title: Active and Available Inventory REST API\n"); - sb.append(" license:\n"); + sb.append(" 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." + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions." + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" version: \"v11\"" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" title: Active and Available Inventory REST API" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" license:" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" name: Apache 2.0\n"); - sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); - sb.append(" contact:\n"); - sb.append(" name:\n"); - sb.append(" url:\n"); - sb.append(" email:\n"); - sb.append("host:\n"); - sb.append("basePath: /aai/v11\n"); - sb.append("schemes:\n"); + sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" contact:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" name:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" url:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" email:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("host:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("basePath: /aai/v11" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("schemes:" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" - https\n"); - sb.append("paths:\n"); + sb.append("paths:" + OxmFileProcessor.LINE_SEPARATOR); return sb.toString(); } @@ -681,12 +711,12 @@ public class YAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/definitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" $ref: \"#/definitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); @@ -764,12 +794,12 @@ public class YAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/patchDefinitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); @@ -851,12 +881,12 @@ public class YAMLfromOXMTest { sb.append(" business:\n"); sb.append(" type: object\n"); sb.append(" $ref: \"#/getDefinitions/business\"\n"); - sb.append(" nodes:\n"); - sb.append(" properties:\n"); - sb.append(" inventory-item-data:\n"); - sb.append(" type: array\n"); - sb.append(" items:\n"); - sb.append(" $ref: \"#/getDefinitions/inventory-item-data\"\n"); + sb.append(" nodes:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" properties:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" inventory-item-data:" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" type: array" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" items:" + OxmFileProcessor.LINE_SEPARATOR ); + sb.append(" $ref: \"#/getDefinitions/inventory-item-data\"" + OxmFileProcessor.LINE_SEPARATOR); sb.append(" service-subscription:\n"); sb.append(" description: |\n"); sb.append(" Object that group service instances.\n"); @@ -889,6 +919,17 @@ public class YAMLfromOXMTest { sb.append(" $ref: \"#/getDefinitions/service-subscription\"\n"); return sb.toString(); } + + public String YAMLRelationshipList() { + StringBuilder sb = new StringBuilder(8092); + sb.append(" relationship-list:\n"); + sb.append(" properties:\n"); + sb.append(" relationship:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/getDefinitions/relationship\"\n"); + return sb.toString(); + } + public static String EdgeDefs() { StringBuilder sb = new StringBuilder(8092); sb.append("{\n" + @@ -933,5 +974,4 @@ public class YAMLfromOXMTest { "}\n"); return sb.toString(); } -} - +} \ No newline at end of file -- cgit 1.2.3-korg