From 059f42e1a2289ecb2cb5835b8b14a0d098c9e1d3 Mon Sep 17 00:00:00 2001 From: "Arul.Nambi" Date: Wed, 13 Sep 2017 15:13:29 -0400 Subject: Renaming openecomp to onap Issue-ID: AAI-208 Change-Id: I559ba27fba96364c506730e8cbac05a9e6591694 Signed-off-by: Arul.Nambi --- .../modelloader/config/ModelLoaderConfigTest.java | 136 +++++++++++++ .../catalog/VnfCatalogArtifactHandlerTest.java | 103 ++++++++++ .../entity/model/ModelArtifactParserTest.java | 128 ++++++++++++ .../entity/model/ModelParserFactoryTest.java | 64 ++++++ .../modelloader/entity/model/ModelSorterTest.java | 214 +++++++++++++++++++++ .../entity/model/ModelV8ArtifactParserTest.java | 107 +++++++++++ .../entity/model/NamedQueryArtifactParserTest.java | 67 +++++++ .../modelloader/restclient/AaiRestClientTest.java | 122 ++++++++++++ .../aai/modelloader/util/JsonXmlConverterTest.java | 83 ++++++++ .../modelloader/config/ModelLoaderConfigTest.java | 136 ------------- .../catalog/VnfCatalogArtifactHandlerTest.java | 101 ---------- .../entity/model/ModelArtifactParserTest.java | 126 ------------ .../entity/model/ModelParserFactoryTest.java | 59 ------ .../modelloader/entity/model/ModelSorterTest.java | 210 -------------------- .../entity/model/ModelV8ArtifactParserTest.java | 105 ---------- .../entity/model/NamedQueryArtifactParserTest.java | 65 ------- .../modelloader/restclient/AaiRestClientTest.java | 122 ------------ .../modelloader/util/JsonXmlConverterTest.java | 82 -------- 18 files changed, 1024 insertions(+), 1006 deletions(-) create mode 100644 src/test/java/org/onap/aai/modelloader/config/ModelLoaderConfigTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/model/ModelArtifactParserTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/model/ModelParserFactoryTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/model/ModelSorterTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/model/ModelV8ArtifactParserTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/entity/model/NamedQueryArtifactParserTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/restclient/AaiRestClientTest.java create mode 100644 src/test/java/org/onap/aai/modelloader/util/JsonXmlConverterTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/model/ModelParserFactoryTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/model/ModelV8ArtifactParserTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/entity/model/NamedQueryArtifactParserTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java delete mode 100644 src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java (limited to 'src/test') diff --git a/src/test/java/org/onap/aai/modelloader/config/ModelLoaderConfigTest.java b/src/test/java/org/onap/aai/modelloader/config/ModelLoaderConfigTest.java new file mode 100644 index 0000000..b30b00d --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/config/ModelLoaderConfigTest.java @@ -0,0 +1,136 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.config; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.List; +import java.util.Properties; + +import org.eclipse.jetty.util.security.Password; +import org.junit.Test; +import org.onap.aai.modelloader.config.ModelLoaderConfig; +import org.onap.aai.modelloader.restclient.AaiRestClient; +import org.openecomp.sdc.utils.ArtifactTypeEnum; + +public class ModelLoaderConfigTest { + + @Test + public void testYangModelArtifactType() { + Properties props = new Properties(); + props.setProperty("ml.distribution.ARTIFACT_TYPES", + "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG"); + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + + List types = config.getRelevantArtifactTypes(); + + System.out.println("ArtifactType: " + types.get(0)); + assertEquals(0, + types.get(0).compareToIgnoreCase(ArtifactTypeEnum.MODEL_INVENTORY_PROFILE.toString())); + + System.out.println("ArtifactType: " + types.get(1)); + assertEquals(0, types.get(1).compareToIgnoreCase(ArtifactTypeEnum.MODEL_QUERY_SPEC.toString())); + + System.out.println("ArtifactType: " + types.get(2)); + assertEquals(0, types.get(2).compareToIgnoreCase(ArtifactTypeEnum.VNF_CATALOG.toString())); + + assertEquals(3, types.size()); + } + + @Test + public void testDecryptPassword() { + Properties props = new Properties(); + String testPass = "youshallnotpass"; + String encryptedTestPass = Password.obfuscate(testPass); + + System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass); + + props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_PASSWORD, encryptedTestPass); + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + + assertEquals(testPass, config.getPassword()); + } + + @Test + public void testDecryptKeystorePassword() { + Properties props = new Properties(); + String testPass = "youshallnotpass"; + String encryptedTestPass = Password.obfuscate(testPass); + + System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass); + + props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD, encryptedTestPass); + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + + assertEquals(testPass, config.getKeyStorePassword()); + } + + @Test + public void testDecryptAAIPassword() { + + Properties props = new Properties(); + String testPassword = "myvoiceismypassword"; + String encryptedTestPassword = Password.obfuscate(testPassword); + + props.put(ModelLoaderConfig.PROP_AAI_AUTHENTICATION_PASSWORD, encryptedTestPassword); + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + + assertEquals(testPassword, config.getAaiAuthenticationPassword()); + } + + @Test + public void testNoAAIAuth() throws IOException { + + Properties props = new Properties(); + props.load( + new FileInputStream("src/test/resources/model-loader-empty-auth-password.properties")); + + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + AaiRestClient aaiClient = new AaiRestClient(config); + + assertFalse("Empty AAI Password should result in no basic authentication", + aaiClient.useBasicAuth()); + + props.load(new FileInputStream("src/test/resources/model-loader-no-auth-password.properties")); + config = new ModelLoaderConfig(props, null); + aaiClient = new AaiRestClient(config); + + assertFalse("No AAI Password should result in no basic authentication", + aaiClient.useBasicAuth()); + } + + @Test + public void testGetUrls() { + Properties props = new Properties(); + props.put(ModelLoaderConfig.PROP_AAI_MODEL_RESOURCE_URL, "/aai/v*/service-design-and-creation/models/model/"); + props.put(ModelLoaderConfig.PROP_AAI_NAMED_QUERY_RESOURCE_URL, "/aai/v*/service-design-and-creation/named-queries/named-query/"); + ModelLoaderConfig config = new ModelLoaderConfig(props, null); + + assertEquals("/aai/v9/service-design-and-creation/models/model/", config.getAaiModelUrl("v9")); + assertEquals("/aai/v10/service-design-and-creation/named-queries/named-query/", config.getAaiNamedQueryUrl("v10")); + } +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java b/src/test/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java new file mode 100644 index 0000000..22137f5 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java @@ -0,0 +1,103 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.catalog; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; +import org.onap.aai.modelloader.config.ModelLoaderConfig; +import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.catalog.VnfCatalogArtifact; +import org.onap.aai.modelloader.entity.catalog.VnfCatalogArtifactHandler; +import org.onap.aai.modelloader.restclient.AaiRestClient; +import org.onap.aai.modelloader.restclient.AaiRestClient.MimeType; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.sun.jersey.api.client.ClientResponse; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ VnfCatalogArtifactHandler.class, ClientResponse.class, AaiRestClient.class }) +public class VnfCatalogArtifactHandlerTest { + + protected static String CONFIG_FILE = "model-loader.properties"; + + @Test + public void testWithMocks() throws Exception { + + Properties configProperties = new Properties(); + try { + configProperties.load(this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE)); + } catch (IOException e) { + fail(); + } + ModelLoaderConfig config = new ModelLoaderConfig(configProperties, null); + + ClientResponse mockGetResp = PowerMockito.mock(ClientResponse.class); + PowerMockito.when(mockGetResp.getStatus()).thenReturn(200).thenReturn(200).thenReturn(404) + .thenReturn(404).thenReturn(200); // only second two will be PUT + ClientResponse mockPutResp = PowerMockito.mock(ClientResponse.class); + PowerMockito.when(mockPutResp.getStatus()).thenReturn(201); + + AaiRestClient mockRestClient = PowerMockito.mock(AaiRestClient.class); + PowerMockito.whenNew(AaiRestClient.class).withAnyArguments().thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.getResource(Mockito.anyString(), Mockito.anyString(), + Mockito.any(MimeType.class))).thenReturn(mockGetResp); + PowerMockito.when(mockRestClient.putResource(Mockito.anyString(), Mockito.anyString(), + Mockito.anyString(), Mockito.any(MimeType.class))).thenReturn(mockPutResp); + + VnfCatalogArtifactHandler vnfCAH = new VnfCatalogArtifactHandler(config); + + String examplePath = "src/test/resources/vnfcatalogexample.xml"; + + byte[] encoded = Files.readAllBytes(Paths.get(examplePath)); + String payload = new String(encoded, "utf-8"); + + VnfCatalogArtifact artifact = new VnfCatalogArtifact(payload); + List artifacts = new ArrayList(); + artifacts.add(artifact); + + String distributionID = "test"; + + assertTrue(vnfCAH.pushArtifacts(artifacts, distributionID)); + // times(2) bc with above get returns should only get to this part twice + ArgumentCaptor argument = ArgumentCaptor.forClass(String.class); + Mockito.verify(mockRestClient, Mockito.times(2)).putResource(Mockito.anyString(), + argument.capture(), Mockito.anyString(), Mockito.any(MimeType.class)); + assertTrue(argument.getAllValues().get(0).contains("5.2.5")); + assertTrue(argument.getAllValues().get(1).contains("5.2.4")); + } +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/model/ModelArtifactParserTest.java b/src/test/java/org/onap/aai/modelloader/entity/model/ModelArtifactParserTest.java new file mode 100644 index 0000000..95b1748 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/model/ModelArtifactParserTest.java @@ -0,0 +1,128 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.model; + +import static org.junit.Assert.assertTrue; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +import org.junit.Test; +import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.model.ModelArtifact; +import org.onap.aai.modelloader.entity.model.ModelArtifactParser; + +public class ModelArtifactParserTest { + + @Test + public void testParseModelFileNoDeps() throws Exception { + final String MODEL_FILE = "src/test/resources/models/l3-network-widget.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelArtifactParser parser = new ModelArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList.size() == 1); + + ModelArtifact model = (ModelArtifact) modelList.get(0); + System.out.println(model.toString()); + + assertTrue(model.getModelInvariantId().equalsIgnoreCase("3d560d81-57d0-438b-a2a1-5334dba0651a")); + assertTrue(model.getModelNamespace().equalsIgnoreCase("http://org.openecomp.aai.inventory/v9")); + assertTrue(model.getModelNamespaceVersion().equalsIgnoreCase("v9")); + assertTrue(model.getType().toString().equalsIgnoreCase("MODEL")); + System.out.println(model.getDependentModelIds().size()); + assertTrue(model.getDependentModelIds().size() == 0); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + + @Test + public void testParseModelFileDeps() throws Exception { + final String MODEL_FILE = "src/test/resources/models/AAI-stellService-service-1.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelArtifactParser parser = new ModelArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList.size() == 1); + + ModelArtifact model = (ModelArtifact) modelList.get(0); + System.out.println(model.toString()); + + assertTrue(model.getModelInvariantId().equalsIgnoreCase("fedf9da3-6a74-4813-8fa2-221a98b0e7ad")); + assertTrue(model.getModelVerId().equalsIgnoreCase("e0373537-7f66-4094-9939-e2f5de6ff5f6")); + assertTrue(model.getType().toString().equalsIgnoreCase("MODEL")); + assertTrue(model.getDependentModelIds().size() == 3); + assertTrue(model.getDependentModelIds().contains("5c12984d-db0f-4300-a0e0-9791775cc40f|88bdbadf-db8a-490f-881e-c8effcbc3f66")); + assertTrue(model.getDependentModelIds().contains("959b7c09-9f34-4e5f-8b63-505381db176e|374d0899-bbc2-4403-9320-fe9bebef75c6")); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + + @Test + public void testParseModelFileInvalidArtifact() throws Exception { + final String MODEL_FILE = "src/test/resources/models/invalid-model.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelArtifactParser parser = new ModelArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList == null || modelList.isEmpty()); + } + catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + + @Test + public void testParseModelFileIncompleteArtifact() throws Exception { + final String MODEL_FILE = "src/test/resources/models/incomplete-model.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelArtifactParser parser = new ModelArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList == null || modelList.isEmpty()); + } + catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/model/ModelParserFactoryTest.java b/src/test/java/org/onap/aai/modelloader/entity/model/ModelParserFactoryTest.java new file mode 100644 index 0000000..9deaf52 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/model/ModelParserFactoryTest.java @@ -0,0 +1,64 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.model; + +import static org.junit.Assert.assertTrue; + +import java.nio.file.Files; +import java.nio.file.Paths; + +import org.junit.Test; +import org.onap.aai.modelloader.entity.model.IModelParser; +import org.onap.aai.modelloader.entity.model.ModelArtifactParser; +import org.onap.aai.modelloader.entity.model.ModelParserFactory; +import org.onap.aai.modelloader.entity.model.ModelV8ArtifactParser; +import org.onap.aai.modelloader.entity.model.NamedQueryArtifactParser; + +public class ModelParserFactoryTest { + + @Test + public void testParserFactory() throws Exception { + final String MODEL_FILE_V8 = "src/test/resources/models/v8-wan-connector-model.xml"; + final String MODEL_FILE_V9 = "src/test/resources/models/AAI-VL-resource-1.xml"; + final String MODEL_FILE_NAMED_QUERY = "src/test/resources/models/named-query-wan-connector.xml"; + + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_V8)); + IModelParser parser = ModelParserFactory.createModelParser(xmlBytes, "v8-wan-connector-model.xml"); + assertTrue(parser instanceof ModelV8ArtifactParser); + + xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_V9)); + parser = ModelParserFactory.createModelParser(xmlBytes, "AAI-VL-resource-1.xml"); + assertTrue(parser instanceof ModelArtifactParser); + + xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_NAMED_QUERY)); + parser = ModelParserFactory.createModelParser(xmlBytes, "named-query-wan-connector.xml"); + assertTrue(parser instanceof NamedQueryArtifactParser); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/model/ModelSorterTest.java b/src/test/java/org/onap/aai/modelloader/entity/model/ModelSorterTest.java new file mode 100644 index 0000000..c787e06 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/model/ModelSorterTest.java @@ -0,0 +1,214 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.junit.Test; +import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.model.ModelArtifact; +import org.onap.aai.modelloader.entity.model.ModelSorter; +import org.onap.aai.modelloader.entity.model.ModelV8Artifact; +import org.onap.aai.modelloader.entity.model.NamedQueryArtifact; + +public class ModelSorterTest { + + @Test + public void noModels() { + + List emptyList = Collections.emptyList(); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(emptyList); + assertNotNull(sortedList); + assertEquals(0, sortedList.size()); + + } + + @Test + public void singleModel() { + + List modelList = new ArrayList(); + + ModelArtifact model = new ModelArtifact(); + model.setModelInvariantId("aaa"); + model.setModelVerId("111"); + model.addDependentModelId("xyz|123"); + modelList.add(model); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(modelList); + assertNotNull(sortedList); + assertEquals(1, sortedList.size()); + + } + + /** + * + * depends on depends on B ------> A -------> C + * + * + * Input list = a, b, c Sorted list = c, a, b + * + */ + @Test + public void multipleModels() { + + List modelList = new ArrayList(); + + ModelArtifact aaaa = new ModelArtifact(); + aaaa.setModelInvariantId("aaaa"); + aaaa.setModelVerId("mvaaaa"); + aaaa.addDependentModelId("cccc|mvcccc"); + + ModelArtifact bbbb = new ModelArtifact(); + bbbb.setModelInvariantId("bbbb"); + bbbb.setModelVerId("mvbbbb"); + bbbb.addDependentModelId("aaaa|mvaaaa"); + + ModelArtifact cccc = new ModelArtifact(); + cccc.setModelInvariantId("cccc"); + cccc.setModelVerId("mvcccc"); + + modelList.add(aaaa); + modelList.add(bbbb); + modelList.add(cccc); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(modelList); + assertNotNull(sortedList); + assertEquals(3, sortedList.size()); + + assertEquals(cccc, sortedList.get(0)); + assertEquals(aaaa, sortedList.get(1)); + assertEquals(bbbb, sortedList.get(2)); + } + + @Test + public void multipleModelsV8() { + + List modelList = new ArrayList(); + + ModelV8Artifact aaaa = new ModelV8Artifact(); + aaaa.setModelNameVersionId("aaaa"); + aaaa.addDependentModelId("cccc"); + + ModelV8Artifact bbbb = new ModelV8Artifact(); + bbbb.setModelNameVersionId("bbbb"); + bbbb.addDependentModelId("aaaa"); + + ModelV8Artifact cccc = new ModelV8Artifact(); + cccc.setModelNameVersionId("cccc"); + + modelList.add(aaaa); + modelList.add(bbbb); + modelList.add(cccc); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(modelList); + assertNotNull(sortedList); + assertEquals(3, sortedList.size()); + + assertEquals(cccc, sortedList.get(0)); + assertEquals(aaaa, sortedList.get(1)); + assertEquals(bbbb, sortedList.get(2)); + } + + @Test + public void multipleModelsAndNamedQueries() { + + List modelList = new ArrayList(); + + ModelArtifact aaaa = new ModelArtifact(); + aaaa.setModelInvariantId("aaaa"); + aaaa.setModelVerId("1111"); + aaaa.addDependentModelId("cccc|2222"); + + NamedQueryArtifact nq1 = new NamedQueryArtifact(); + nq1.setNamedQueryUuid("nq1"); + nq1.addDependentModelId("aaaa|1111"); + + NamedQueryArtifact nq2 = new NamedQueryArtifact(); + nq2.setNamedQueryUuid("nq2"); + nq2.addDependentModelId("existing-model"); + + + modelList.add(nq1); + modelList.add(nq2); + modelList.add(aaaa); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(modelList); + assertNotNull(sortedList); + assertEquals(3, sortedList.size()); + + System.out.println(sortedList.get(0) + "-" + sortedList.get(1) + "-" + sortedList.get(2)); + assertEquals(aaaa, sortedList.get(0)); + assertEquals(nq2, sortedList.get(1)); + assertEquals(nq1, sortedList.get(2)); + } + + @Test(expected = RuntimeException.class) + public void circularDependency() { + + List modelList = new ArrayList(); + + ModelArtifact aaaa = new ModelArtifact(); + aaaa.setModelInvariantId("aaaa"); + aaaa.setModelVerId("1111"); + aaaa.addDependentModelId("bbbb|1111"); + + ModelArtifact bbbb = new ModelArtifact(); + bbbb.setModelInvariantId("bbbb"); + bbbb.setModelVerId("1111"); + bbbb.addDependentModelId("aaaa|1111"); + + modelList.add(aaaa); + modelList.add(bbbb); + + ModelSorter sorter = new ModelSorter(); + sorter = new ModelSorter(); + + List sortedList = sorter.sort(modelList); + assertNotNull(sortedList); + assertEquals(2, sortedList.size()); + + } + +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/model/ModelV8ArtifactParserTest.java b/src/test/java/org/onap/aai/modelloader/entity/model/ModelV8ArtifactParserTest.java new file mode 100644 index 0000000..6a9bd61 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/model/ModelV8ArtifactParserTest.java @@ -0,0 +1,107 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.model; + +import static org.junit.Assert.assertTrue; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +import org.junit.Test; +import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.model.ModelV8Artifact; +import org.onap.aai.modelloader.entity.model.ModelV8ArtifactParser; + +public class ModelV8ArtifactParserTest { + + @Test + public void testParseModelFile() throws Exception { + final String MODEL_FILE = "src/test/resources/models/v8-wan-connector-model.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList.size() == 1); + + ModelV8Artifact model = (ModelV8Artifact) modelList.get(0); + System.out.println(model.toString()); + + assertTrue(model.getModelNameVersionId().equalsIgnoreCase("93d9d45d-7eec-4371-9083-675e4c353de3")); + assertTrue(model.getModelNamespace().equalsIgnoreCase("http://com.att.aai.inventory/v7")); + assertTrue(model.getModelNamespaceVersion().equalsIgnoreCase("v7")); + assertTrue(model.getType().toString().equalsIgnoreCase("MODEL_V8")); + assertTrue(model.getDependentModelIds().size() == 7); + assertTrue(model.getDependentModelIds().contains("d09dd9da-0148-46cd-a947-591afc844d24")); + assertTrue(model.getDependentModelIds().contains("997fc7-fca1-451f-b953-9a1e6197b4d6")); + assertTrue(model.getDependentModelIds().contains("ae16244f-4d29-4801-a559-e25f2db2a4c3")); + assertTrue(model.getDependentModelIds().contains("759dbd4a-2473-46f3-a932-48d987c9b4a1")); + assertTrue(model.getDependentModelIds().contains("a6d9de88-4046-4b78-a59e-5691243d292a")); + assertTrue(model.getDependentModelIds().contains("35be1acf-1298-48c6-a128-66850083b8bd")); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + + @Test + public void testParseModelFileInvalidArtifact() throws Exception { + final String MODEL_FILE = "src/test/resources/models/invalid-model.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList == null || modelList.isEmpty()); + } + catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + + @Test + public void testParseModelFileIncompleteArtifact() throws Exception { + final String MODEL_FILE = "src/test/resources/models/incomplete-model.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList == null || modelList.isEmpty()); + } + catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + +} diff --git a/src/test/java/org/onap/aai/modelloader/entity/model/NamedQueryArtifactParserTest.java b/src/test/java/org/onap/aai/modelloader/entity/model/NamedQueryArtifactParserTest.java new file mode 100644 index 0000000..75065a3 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/entity/model/NamedQueryArtifactParserTest.java @@ -0,0 +1,67 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.entity.model; + +import static org.junit.Assert.assertTrue; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +import org.junit.Test; +import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.model.NamedQueryArtifact; +import org.onap.aai.modelloader.entity.model.NamedQueryArtifactParser; + +public class NamedQueryArtifactParserTest { + + @Test + public void testParseNamedQuery() throws Exception { + final String MODEL_FILE = "src/test/resources/models/named-query-wan-connector.xml"; + + try { + byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); + + NamedQueryArtifactParser parser = new NamedQueryArtifactParser(); + List modelList = parser.parse(xmlBytes, "test-artifact"); + + assertTrue(modelList.size() == 1); + + NamedQueryArtifact model = (NamedQueryArtifact) modelList.get(0); + System.out.println(model.toString()); + + assertTrue(model.getNamedQueryUuid().equalsIgnoreCase("94cac189-8d88-4d63-a194-f44214e080ff")); + assertTrue(model.getType().toString().equalsIgnoreCase("NAMED_QUERY")); + assertTrue(model.getDependentModelIds().size() == 4); + assertTrue(model.getDependentModelIds().contains("d09dd9da-0148-46cd-a947-591afc844d24")); + assertTrue(model.getDependentModelIds().contains("997fc7-fca1-451f-b953-9a1e6197b4d6")); + assertTrue(model.getDependentModelIds().contains("897df7ea-8938-42b0-bc57-46e913a4d93b")); + assertTrue(model.getDependentModelIds().contains("f2b24d95-c582-48d5-b2d6-c5b3a94ce812")); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } + +} diff --git a/src/test/java/org/onap/aai/modelloader/restclient/AaiRestClientTest.java b/src/test/java/org/onap/aai/modelloader/restclient/AaiRestClientTest.java new file mode 100644 index 0000000..07541b2 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/restclient/AaiRestClientTest.java @@ -0,0 +1,122 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.restclient; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import org.onap.aai.modelloader.config.ModelLoaderConfig; +import org.onap.aai.modelloader.entity.ArtifactType; +import org.onap.aai.modelloader.entity.model.ModelArtifact; + +public class AaiRestClientTest { + + // This test requires a running A&AI system. Uncomment to test locally. + /* + * @Test public void testRestClient() throws Exception { final String + * MODEL_FILE = "src/test/resources/models/vnf-model.xml"; + * + * Properties props = new Properties(); + * props.setProperty("ml.distribution.ARTIFACT_TYPES", + * "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG"); + * props.setProperty("ml.aai.BASE_URL", "https://127.0.0.1:4321"); + * props.setProperty("ml.aai.MODEL_URL", + * "/aai/v8/service-design-and-creation/models/model/"); + * props.setProperty("ml.aai.KEYSTORE_FILE", "aai-client-cert.p12"); + * props.setProperty("ml.aai.KEYSTORE_PASSWORD", + * "OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o"); + * + * ModelLoaderConfig config = new ModelLoaderConfig(props, ""); + * + * String payload = readFile(MODEL_FILE); System.out.println("FILE:" + + * payload); + * + * File xmlFile = new File(MODEL_FILE); DocumentBuilderFactory dbFactory = + * DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = + * dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFile); + * + * // Get the ID of the model String modelId = null; NodeList nodeList = + * doc.getDocumentElement().getChildNodes(); for (int i = 0; i < + * nodeList.getLength(); i++) { Node currentNode = nodeList.item(i); if + * (currentNode.getNodeName().equals("model-name-version-id")) { modelId = + * currentNode.getTextContent(); break; } } + * + * // Add the model try { ModelArtifact model = new ModelArtifact(); + * model.setNameVersionId(modelId); model.setType(ArtifactType.MODEL); + * model.setPayload(payload); + * + * AAIRestClient aaiClient = new AAIRestClient(config); + * + * // GET model System.out.println("Calling GET API ..."); ClientResponse + * getResponse = aaiClient.getResource(getURL(model, config), + * "example-trans-id-0", AAIRestClient.MimeType.XML); System.out.println( + * "GET result: " + getResponse.getStatus()); + * assertTrue(getResponse.getStatus() == + * Response.Status.NOT_FOUND.getStatusCode()); + * + * // Add the model System.out.println("Calling PUT API ..."); ClientResponse + * res = aaiClient.putResource(getURL(model, config), model.getPayload(), + * "example-trans-id-1", AAIRestClient.MimeType.XML); System.out.println( + * "PUT result: " + res.getStatus()); assertTrue(res.getStatus() == + * Response.Status.CREATED.getStatusCode()); + * + * // Delete the model System.out.println("Calling DELETE API ..."); res = + * aaiClient.getAndDeleteResource(getURL(model, config), + * "example-trans-id-3"); System.out.println("DELETE result: " + + * res.getStatus()); assertTrue(res.getStatus() == + * Response.Status.NO_CONTENT.getStatusCode()); } catch (Exception e) { + * e.printStackTrace(); } } + */ + + static String readFile(String path) throws IOException { + byte[] encoded = Files.readAllBytes(Paths.get(path)); + return new String(encoded); + } + + private String getURL(ModelArtifact model, ModelLoaderConfig config) { + String baseURL = config.getAaiBaseUrl().trim(); + String subURL = null; + if (model.getType().equals(ArtifactType.MODEL)) { + subURL = config.getAaiModelUrl(model.getModelNamespaceVersion()).trim(); + } else { + subURL = config.getAaiNamedQueryUrl(model.getModelNamespaceVersion()).trim(); + } + + if ((!baseURL.endsWith("/")) && (!subURL.startsWith("/"))) { + baseURL = baseURL + "/"; + } + + if (baseURL.endsWith("/") && subURL.startsWith("/")) { + baseURL = baseURL.substring(0, baseURL.length() - 1); + } + + if (!subURL.endsWith("/")) { + subURL = subURL + "/"; + } + + String url = baseURL + subURL + model.getUniqueIdentifier(); + return url; + } +} diff --git a/src/test/java/org/onap/aai/modelloader/util/JsonXmlConverterTest.java b/src/test/java/org/onap/aai/modelloader/util/JsonXmlConverterTest.java new file mode 100644 index 0000000..816f004 --- /dev/null +++ b/src/test/java/org/onap/aai/modelloader/util/JsonXmlConverterTest.java @@ -0,0 +1,83 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * 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.modelloader.util; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayInputStream; +import java.nio.file.Files; +import java.nio.file.Paths; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.junit.Test; +import org.onap.aai.modelloader.util.JsonXmlConverter; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +public class JsonXmlConverterTest { + + @Test + public void testConversion() throws Exception { + final String XML_MODEL_FILE = "src/test/resources/models/l3-network-widget.xml"; + final String JSON_MODEL_FILE = "src/test/resources/models/l3-network-widget.json"; + + try { + byte[] encoded = Files.readAllBytes(Paths.get(XML_MODEL_FILE)); + String originalXML = new String(encoded); + + assertFalse(JsonXmlConverter.isValidJson(originalXML)); + + encoded = Files.readAllBytes(Paths.get(JSON_MODEL_FILE)); + String originalJSON = new String(encoded); + + assertTrue(JsonXmlConverter.isValidJson(originalJSON)); + + String xmlFromJson = JsonXmlConverter.convertJsonToXml(originalJSON); + + // Spot check one of the attributes + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document doc = builder.parse(new ByteArrayInputStream(xmlFromJson.getBytes())); + NodeList nodeList = doc.getDocumentElement().getChildNodes(); + + String modelVid = "notFound"; + for (int i = 0; i < nodeList.getLength(); i++) { + Node currentNode = nodeList.item(i); + if (currentNode.getNodeName().equals("model-invariant-id")) { + modelVid = currentNode.getTextContent(); + break; + } + } + + assertTrue(modelVid.equals("3d560d81-57d0-438b-a2a1-5334dba0651a")); + } catch (Exception e) { + e.printStackTrace(); + assertTrue(false); + } + } +} diff --git a/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java b/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java deleted file mode 100644 index 54ce0d5..0000000 --- a/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.config; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -import java.io.FileInputStream; -import java.io.IOException; -import java.util.List; -import java.util.Properties; - -import org.eclipse.jetty.util.security.Password; -import org.junit.Test; -import org.openecomp.modelloader.restclient.AaiRestClient; - -import org.openecomp.sdc.utils.ArtifactTypeEnum; - -public class ModelLoaderConfigTest { - - @Test - public void testYangModelArtifactType() { - Properties props = new Properties(); - props.setProperty("ml.distribution.ARTIFACT_TYPES", - "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG"); - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - - List types = config.getRelevantArtifactTypes(); - - System.out.println("ArtifactType: " + types.get(0)); - assertEquals(0, - types.get(0).compareToIgnoreCase(ArtifactTypeEnum.MODEL_INVENTORY_PROFILE.toString())); - - System.out.println("ArtifactType: " + types.get(1)); - assertEquals(0, types.get(1).compareToIgnoreCase(ArtifactTypeEnum.MODEL_QUERY_SPEC.toString())); - - System.out.println("ArtifactType: " + types.get(2)); - assertEquals(0, types.get(2).compareToIgnoreCase(ArtifactTypeEnum.VNF_CATALOG.toString())); - - assertEquals(3, types.size()); - } - - @Test - public void testDecryptPassword() { - Properties props = new Properties(); - String testPass = "youshallnotpass"; - String encryptedTestPass = Password.obfuscate(testPass); - - System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass); - - props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_PASSWORD, encryptedTestPass); - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - - assertEquals(testPass, config.getPassword()); - } - - @Test - public void testDecryptKeystorePassword() { - Properties props = new Properties(); - String testPass = "youshallnotpass"; - String encryptedTestPass = Password.obfuscate(testPass); - - System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass); - - props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD, encryptedTestPass); - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - - assertEquals(testPass, config.getKeyStorePassword()); - } - - @Test - public void testDecryptAAIPassword() { - - Properties props = new Properties(); - String testPassword = "myvoiceismypassword"; - String encryptedTestPassword = Password.obfuscate(testPassword); - - props.put(ModelLoaderConfig.PROP_AAI_AUTHENTICATION_PASSWORD, encryptedTestPassword); - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - - assertEquals(testPassword, config.getAaiAuthenticationPassword()); - } - - @Test - public void testNoAAIAuth() throws IOException { - - Properties props = new Properties(); - props.load( - new FileInputStream("src/test/resources/model-loader-empty-auth-password.properties")); - - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - AaiRestClient aaiClient = new AaiRestClient(config); - - assertFalse("Empty AAI Password should result in no basic authentication", - aaiClient.useBasicAuth()); - - props.load(new FileInputStream("src/test/resources/model-loader-no-auth-password.properties")); - config = new ModelLoaderConfig(props, null); - aaiClient = new AaiRestClient(config); - - assertFalse("No AAI Password should result in no basic authentication", - aaiClient.useBasicAuth()); - } - - @Test - public void testGetUrls() { - Properties props = new Properties(); - props.put(ModelLoaderConfig.PROP_AAI_MODEL_RESOURCE_URL, "/aai/v*/service-design-and-creation/models/model/"); - props.put(ModelLoaderConfig.PROP_AAI_NAMED_QUERY_RESOURCE_URL, "/aai/v*/service-design-and-creation/named-queries/named-query/"); - ModelLoaderConfig config = new ModelLoaderConfig(props, null); - - assertEquals("/aai/v9/service-design-and-creation/models/model/", config.getAaiModelUrl("v9")); - assertEquals("/aai/v10/service-design-and-creation/named-queries/named-query/", config.getAaiNamedQueryUrl("v10")); - } -} diff --git a/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java b/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java deleted file mode 100644 index a6e1b96..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.catalog; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; -import org.openecomp.modelloader.config.ModelLoaderConfig; -import org.openecomp.modelloader.entity.Artifact; -import org.openecomp.modelloader.restclient.AaiRestClient; -import org.openecomp.modelloader.restclient.AaiRestClient.MimeType; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import com.sun.jersey.api.client.ClientResponse; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ VnfCatalogArtifactHandler.class, ClientResponse.class, AaiRestClient.class }) -public class VnfCatalogArtifactHandlerTest { - - protected static String CONFIG_FILE = "model-loader.properties"; - - @Test - public void testWithMocks() throws Exception { - - Properties configProperties = new Properties(); - try { - configProperties.load(this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE)); - } catch (IOException e) { - fail(); - } - ModelLoaderConfig config = new ModelLoaderConfig(configProperties, null); - - ClientResponse mockGetResp = PowerMockito.mock(ClientResponse.class); - PowerMockito.when(mockGetResp.getStatus()).thenReturn(200).thenReturn(200).thenReturn(404) - .thenReturn(404).thenReturn(200); // only second two will be PUT - ClientResponse mockPutResp = PowerMockito.mock(ClientResponse.class); - PowerMockito.when(mockPutResp.getStatus()).thenReturn(201); - - AaiRestClient mockRestClient = PowerMockito.mock(AaiRestClient.class); - PowerMockito.whenNew(AaiRestClient.class).withAnyArguments().thenReturn(mockRestClient); - PowerMockito.when(mockRestClient.getResource(Mockito.anyString(), Mockito.anyString(), - Mockito.any(MimeType.class))).thenReturn(mockGetResp); - PowerMockito.when(mockRestClient.putResource(Mockito.anyString(), Mockito.anyString(), - Mockito.anyString(), Mockito.any(MimeType.class))).thenReturn(mockPutResp); - - VnfCatalogArtifactHandler vnfCAH = new VnfCatalogArtifactHandler(config); - - String examplePath = "src/test/resources/vnfcatalogexample.xml"; - - byte[] encoded = Files.readAllBytes(Paths.get(examplePath)); - String payload = new String(encoded, "utf-8"); - - VnfCatalogArtifact artifact = new VnfCatalogArtifact(payload); - List artifacts = new ArrayList(); - artifacts.add(artifact); - - String distributionID = "test"; - - assertTrue(vnfCAH.pushArtifacts(artifacts, distributionID)); - // times(2) bc with above get returns should only get to this part twice - ArgumentCaptor argument = ArgumentCaptor.forClass(String.class); - Mockito.verify(mockRestClient, Mockito.times(2)).putResource(Mockito.anyString(), - argument.capture(), Mockito.anyString(), Mockito.any(MimeType.class)); - assertTrue(argument.getAllValues().get(0).contains("5.2.5")); - assertTrue(argument.getAllValues().get(1).contains("5.2.4")); - } -} diff --git a/src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java b/src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java deleted file mode 100644 index 040d5a0..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java +++ /dev/null @@ -1,126 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.model; - -import static org.junit.Assert.assertTrue; - -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - -import org.junit.Test; -import org.openecomp.modelloader.entity.Artifact; - -public class ModelArtifactParserTest { - - @Test - public void testParseModelFileNoDeps() throws Exception { - final String MODEL_FILE = "src/test/resources/models/l3-network-widget.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelArtifactParser parser = new ModelArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList.size() == 1); - - ModelArtifact model = (ModelArtifact) modelList.get(0); - System.out.println(model.toString()); - - assertTrue(model.getModelInvariantId().equalsIgnoreCase("3d560d81-57d0-438b-a2a1-5334dba0651a")); - assertTrue(model.getModelNamespace().equalsIgnoreCase("http://org.openecomp.aai.inventory/v9")); - assertTrue(model.getModelNamespaceVersion().equalsIgnoreCase("v9")); - assertTrue(model.getType().toString().equalsIgnoreCase("MODEL")); - System.out.println(model.getDependentModelIds().size()); - assertTrue(model.getDependentModelIds().size() == 0); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - - @Test - public void testParseModelFileDeps() throws Exception { - final String MODEL_FILE = "src/test/resources/models/AAI-stellService-service-1.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelArtifactParser parser = new ModelArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList.size() == 1); - - ModelArtifact model = (ModelArtifact) modelList.get(0); - System.out.println(model.toString()); - - assertTrue(model.getModelInvariantId().equalsIgnoreCase("fedf9da3-6a74-4813-8fa2-221a98b0e7ad")); - assertTrue(model.getModelVerId().equalsIgnoreCase("e0373537-7f66-4094-9939-e2f5de6ff5f6")); - assertTrue(model.getType().toString().equalsIgnoreCase("MODEL")); - assertTrue(model.getDependentModelIds().size() == 3); - assertTrue(model.getDependentModelIds().contains("5c12984d-db0f-4300-a0e0-9791775cc40f|88bdbadf-db8a-490f-881e-c8effcbc3f66")); - assertTrue(model.getDependentModelIds().contains("959b7c09-9f34-4e5f-8b63-505381db176e|374d0899-bbc2-4403-9320-fe9bebef75c6")); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - - @Test - public void testParseModelFileInvalidArtifact() throws Exception { - final String MODEL_FILE = "src/test/resources/models/invalid-model.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelArtifactParser parser = new ModelArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList == null || modelList.isEmpty()); - } - catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - - @Test - public void testParseModelFileIncompleteArtifact() throws Exception { - final String MODEL_FILE = "src/test/resources/models/incomplete-model.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelArtifactParser parser = new ModelArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList == null || modelList.isEmpty()); - } - catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } -} diff --git a/src/test/java/org/openecomp/modelloader/entity/model/ModelParserFactoryTest.java b/src/test/java/org/openecomp/modelloader/entity/model/ModelParserFactoryTest.java deleted file mode 100644 index 2b4faff..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/model/ModelParserFactoryTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.model; - -import static org.junit.Assert.assertTrue; - -import java.nio.file.Files; -import java.nio.file.Paths; - -import org.junit.Test; - -public class ModelParserFactoryTest { - - @Test - public void testParserFactory() throws Exception { - final String MODEL_FILE_V8 = "src/test/resources/models/v8-wan-connector-model.xml"; - final String MODEL_FILE_V9 = "src/test/resources/models/AAI-VL-resource-1.xml"; - final String MODEL_FILE_NAMED_QUERY = "src/test/resources/models/named-query-wan-connector.xml"; - - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_V8)); - IModelParser parser = ModelParserFactory.createModelParser(xmlBytes, "v8-wan-connector-model.xml"); - assertTrue(parser instanceof ModelV8ArtifactParser); - - xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_V9)); - parser = ModelParserFactory.createModelParser(xmlBytes, "AAI-VL-resource-1.xml"); - assertTrue(parser instanceof ModelArtifactParser); - - xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE_NAMED_QUERY)); - parser = ModelParserFactory.createModelParser(xmlBytes, "named-query-wan-connector.xml"); - assertTrue(parser instanceof NamedQueryArtifactParser); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } -} diff --git a/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java b/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java deleted file mode 100644 index 27cdfc9..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java +++ /dev/null @@ -1,210 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.model; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.junit.Test; -import org.openecomp.modelloader.entity.Artifact; - -public class ModelSorterTest { - - @Test - public void noModels() { - - List emptyList = Collections.emptyList(); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(emptyList); - assertNotNull(sortedList); - assertEquals(0, sortedList.size()); - - } - - @Test - public void singleModel() { - - List modelList = new ArrayList(); - - ModelArtifact model = new ModelArtifact(); - model.setModelInvariantId("aaa"); - model.setModelVerId("111"); - model.addDependentModelId("xyz|123"); - modelList.add(model); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(modelList); - assertNotNull(sortedList); - assertEquals(1, sortedList.size()); - - } - - /** - * - * depends on depends on B ------> A -------> C - * - * - * Input list = a, b, c Sorted list = c, a, b - * - */ - @Test - public void multipleModels() { - - List modelList = new ArrayList(); - - ModelArtifact aaaa = new ModelArtifact(); - aaaa.setModelInvariantId("aaaa"); - aaaa.setModelVerId("mvaaaa"); - aaaa.addDependentModelId("cccc|mvcccc"); - - ModelArtifact bbbb = new ModelArtifact(); - bbbb.setModelInvariantId("bbbb"); - bbbb.setModelVerId("mvbbbb"); - bbbb.addDependentModelId("aaaa|mvaaaa"); - - ModelArtifact cccc = new ModelArtifact(); - cccc.setModelInvariantId("cccc"); - cccc.setModelVerId("mvcccc"); - - modelList.add(aaaa); - modelList.add(bbbb); - modelList.add(cccc); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(modelList); - assertNotNull(sortedList); - assertEquals(3, sortedList.size()); - - assertEquals(cccc, sortedList.get(0)); - assertEquals(aaaa, sortedList.get(1)); - assertEquals(bbbb, sortedList.get(2)); - } - - @Test - public void multipleModelsV8() { - - List modelList = new ArrayList(); - - ModelV8Artifact aaaa = new ModelV8Artifact(); - aaaa.setModelNameVersionId("aaaa"); - aaaa.addDependentModelId("cccc"); - - ModelV8Artifact bbbb = new ModelV8Artifact(); - bbbb.setModelNameVersionId("bbbb"); - bbbb.addDependentModelId("aaaa"); - - ModelV8Artifact cccc = new ModelV8Artifact(); - cccc.setModelNameVersionId("cccc"); - - modelList.add(aaaa); - modelList.add(bbbb); - modelList.add(cccc); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(modelList); - assertNotNull(sortedList); - assertEquals(3, sortedList.size()); - - assertEquals(cccc, sortedList.get(0)); - assertEquals(aaaa, sortedList.get(1)); - assertEquals(bbbb, sortedList.get(2)); - } - - @Test - public void multipleModelsAndNamedQueries() { - - List modelList = new ArrayList(); - - ModelArtifact aaaa = new ModelArtifact(); - aaaa.setModelInvariantId("aaaa"); - aaaa.setModelVerId("1111"); - aaaa.addDependentModelId("cccc|2222"); - - NamedQueryArtifact nq1 = new NamedQueryArtifact(); - nq1.setNamedQueryUuid("nq1"); - nq1.addDependentModelId("aaaa|1111"); - - NamedQueryArtifact nq2 = new NamedQueryArtifact(); - nq2.setNamedQueryUuid("nq2"); - nq2.addDependentModelId("existing-model"); - - - modelList.add(nq1); - modelList.add(nq2); - modelList.add(aaaa); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(modelList); - assertNotNull(sortedList); - assertEquals(3, sortedList.size()); - - System.out.println(sortedList.get(0) + "-" + sortedList.get(1) + "-" + sortedList.get(2)); - assertEquals(aaaa, sortedList.get(0)); - assertEquals(nq2, sortedList.get(1)); - assertEquals(nq1, sortedList.get(2)); - } - - @Test(expected = RuntimeException.class) - public void circularDependency() { - - List modelList = new ArrayList(); - - ModelArtifact aaaa = new ModelArtifact(); - aaaa.setModelInvariantId("aaaa"); - aaaa.setModelVerId("1111"); - aaaa.addDependentModelId("bbbb|1111"); - - ModelArtifact bbbb = new ModelArtifact(); - bbbb.setModelInvariantId("bbbb"); - bbbb.setModelVerId("1111"); - bbbb.addDependentModelId("aaaa|1111"); - - modelList.add(aaaa); - modelList.add(bbbb); - - ModelSorter sorter = new ModelSorter(); - sorter = new ModelSorter(); - - List sortedList = sorter.sort(modelList); - assertNotNull(sortedList); - assertEquals(2, sortedList.size()); - - } - -} diff --git a/src/test/java/org/openecomp/modelloader/entity/model/ModelV8ArtifactParserTest.java b/src/test/java/org/openecomp/modelloader/entity/model/ModelV8ArtifactParserTest.java deleted file mode 100644 index 17772a7..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/model/ModelV8ArtifactParserTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.model; - -import static org.junit.Assert.assertTrue; - -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - -import org.junit.Test; -import org.openecomp.modelloader.entity.Artifact; - -public class ModelV8ArtifactParserTest { - - @Test - public void testParseModelFile() throws Exception { - final String MODEL_FILE = "src/test/resources/models/v8-wan-connector-model.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList.size() == 1); - - ModelV8Artifact model = (ModelV8Artifact) modelList.get(0); - System.out.println(model.toString()); - - assertTrue(model.getModelNameVersionId().equalsIgnoreCase("93d9d45d-7eec-4371-9083-675e4c353de3")); - assertTrue(model.getModelNamespace().equalsIgnoreCase("http://com.att.aai.inventory/v7")); - assertTrue(model.getModelNamespaceVersion().equalsIgnoreCase("v7")); - assertTrue(model.getType().toString().equalsIgnoreCase("MODEL_V8")); - assertTrue(model.getDependentModelIds().size() == 7); - assertTrue(model.getDependentModelIds().contains("d09dd9da-0148-46cd-a947-591afc844d24")); - assertTrue(model.getDependentModelIds().contains("997fc7-fca1-451f-b953-9a1e6197b4d6")); - assertTrue(model.getDependentModelIds().contains("ae16244f-4d29-4801-a559-e25f2db2a4c3")); - assertTrue(model.getDependentModelIds().contains("759dbd4a-2473-46f3-a932-48d987c9b4a1")); - assertTrue(model.getDependentModelIds().contains("a6d9de88-4046-4b78-a59e-5691243d292a")); - assertTrue(model.getDependentModelIds().contains("35be1acf-1298-48c6-a128-66850083b8bd")); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - - @Test - public void testParseModelFileInvalidArtifact() throws Exception { - final String MODEL_FILE = "src/test/resources/models/invalid-model.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList == null || modelList.isEmpty()); - } - catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - - @Test - public void testParseModelFileIncompleteArtifact() throws Exception { - final String MODEL_FILE = "src/test/resources/models/incomplete-model.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - ModelV8ArtifactParser parser = new ModelV8ArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList == null || modelList.isEmpty()); - } - catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - -} diff --git a/src/test/java/org/openecomp/modelloader/entity/model/NamedQueryArtifactParserTest.java b/src/test/java/org/openecomp/modelloader/entity/model/NamedQueryArtifactParserTest.java deleted file mode 100644 index 69ac855..0000000 --- a/src/test/java/org/openecomp/modelloader/entity/model/NamedQueryArtifactParserTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.entity.model; - -import static org.junit.Assert.assertTrue; - -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - -import org.junit.Test; -import org.openecomp.modelloader.entity.Artifact; - -public class NamedQueryArtifactParserTest { - - @Test - public void testParseNamedQuery() throws Exception { - final String MODEL_FILE = "src/test/resources/models/named-query-wan-connector.xml"; - - try { - byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE)); - - NamedQueryArtifactParser parser = new NamedQueryArtifactParser(); - List modelList = parser.parse(xmlBytes, "test-artifact"); - - assertTrue(modelList.size() == 1); - - NamedQueryArtifact model = (NamedQueryArtifact) modelList.get(0); - System.out.println(model.toString()); - - assertTrue(model.getNamedQueryUuid().equalsIgnoreCase("94cac189-8d88-4d63-a194-f44214e080ff")); - assertTrue(model.getType().toString().equalsIgnoreCase("NAMED_QUERY")); - assertTrue(model.getDependentModelIds().size() == 4); - assertTrue(model.getDependentModelIds().contains("d09dd9da-0148-46cd-a947-591afc844d24")); - assertTrue(model.getDependentModelIds().contains("997fc7-fca1-451f-b953-9a1e6197b4d6")); - assertTrue(model.getDependentModelIds().contains("897df7ea-8938-42b0-bc57-46e913a4d93b")); - assertTrue(model.getDependentModelIds().contains("f2b24d95-c582-48d5-b2d6-c5b3a94ce812")); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } - -} diff --git a/src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java b/src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java deleted file mode 100644 index 8f9931c..0000000 --- a/src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.restclient; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; - -import org.openecomp.modelloader.config.ModelLoaderConfig; -import org.openecomp.modelloader.entity.ArtifactType; -import org.openecomp.modelloader.entity.model.ModelArtifact; - -public class AaiRestClientTest { - - // This test requires a running A&AI system. Uncomment to test locally. - /* - * @Test public void testRestClient() throws Exception { final String - * MODEL_FILE = "src/test/resources/models/vnf-model.xml"; - * - * Properties props = new Properties(); - * props.setProperty("ml.distribution.ARTIFACT_TYPES", - * "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG"); - * props.setProperty("ml.aai.BASE_URL", "https://127.0.0.1:4321"); - * props.setProperty("ml.aai.MODEL_URL", - * "/aai/v8/service-design-and-creation/models/model/"); - * props.setProperty("ml.aai.KEYSTORE_FILE", "aai-client-cert.p12"); - * props.setProperty("ml.aai.KEYSTORE_PASSWORD", - * "OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o"); - * - * ModelLoaderConfig config = new ModelLoaderConfig(props, ""); - * - * String payload = readFile(MODEL_FILE); System.out.println("FILE:" + - * payload); - * - * File xmlFile = new File(MODEL_FILE); DocumentBuilderFactory dbFactory = - * DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = - * dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFile); - * - * // Get the ID of the model String modelId = null; NodeList nodeList = - * doc.getDocumentElement().getChildNodes(); for (int i = 0; i < - * nodeList.getLength(); i++) { Node currentNode = nodeList.item(i); if - * (currentNode.getNodeName().equals("model-name-version-id")) { modelId = - * currentNode.getTextContent(); break; } } - * - * // Add the model try { ModelArtifact model = new ModelArtifact(); - * model.setNameVersionId(modelId); model.setType(ArtifactType.MODEL); - * model.setPayload(payload); - * - * AAIRestClient aaiClient = new AAIRestClient(config); - * - * // GET model System.out.println("Calling GET API ..."); ClientResponse - * getResponse = aaiClient.getResource(getURL(model, config), - * "example-trans-id-0", AAIRestClient.MimeType.XML); System.out.println( - * "GET result: " + getResponse.getStatus()); - * assertTrue(getResponse.getStatus() == - * Response.Status.NOT_FOUND.getStatusCode()); - * - * // Add the model System.out.println("Calling PUT API ..."); ClientResponse - * res = aaiClient.putResource(getURL(model, config), model.getPayload(), - * "example-trans-id-1", AAIRestClient.MimeType.XML); System.out.println( - * "PUT result: " + res.getStatus()); assertTrue(res.getStatus() == - * Response.Status.CREATED.getStatusCode()); - * - * // Delete the model System.out.println("Calling DELETE API ..."); res = - * aaiClient.getAndDeleteResource(getURL(model, config), - * "example-trans-id-3"); System.out.println("DELETE result: " + - * res.getStatus()); assertTrue(res.getStatus() == - * Response.Status.NO_CONTENT.getStatusCode()); } catch (Exception e) { - * e.printStackTrace(); } } - */ - - static String readFile(String path) throws IOException { - byte[] encoded = Files.readAllBytes(Paths.get(path)); - return new String(encoded); - } - - private String getURL(ModelArtifact model, ModelLoaderConfig config) { - String baseURL = config.getAaiBaseUrl().trim(); - String subURL = null; - if (model.getType().equals(ArtifactType.MODEL)) { - subURL = config.getAaiModelUrl(model.getModelNamespaceVersion()).trim(); - } else { - subURL = config.getAaiNamedQueryUrl(model.getModelNamespaceVersion()).trim(); - } - - if ((!baseURL.endsWith("/")) && (!subURL.startsWith("/"))) { - baseURL = baseURL + "/"; - } - - if (baseURL.endsWith("/") && subURL.startsWith("/")) { - baseURL = baseURL.substring(0, baseURL.length() - 1); - } - - if (!subURL.endsWith("/")) { - subURL = subURL + "/"; - } - - String url = baseURL + subURL + model.getUniqueIdentifier(); - return url; - } -} diff --git a/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java b/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java deleted file mode 100644 index fc8a80a..0000000 --- a/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * 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.openecomp.modelloader.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.io.ByteArrayInputStream; -import java.nio.file.Files; -import java.nio.file.Paths; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class JsonXmlConverterTest { - - @Test - public void testConversion() throws Exception { - final String XML_MODEL_FILE = "src/test/resources/models/l3-network-widget.xml"; - final String JSON_MODEL_FILE = "src/test/resources/models/l3-network-widget.json"; - - try { - byte[] encoded = Files.readAllBytes(Paths.get(XML_MODEL_FILE)); - String originalXML = new String(encoded); - - assertFalse(JsonXmlConverter.isValidJson(originalXML)); - - encoded = Files.readAllBytes(Paths.get(JSON_MODEL_FILE)); - String originalJSON = new String(encoded); - - assertTrue(JsonXmlConverter.isValidJson(originalJSON)); - - String xmlFromJson = JsonXmlConverter.convertJsonToXml(originalJSON); - - // Spot check one of the attributes - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.parse(new ByteArrayInputStream(xmlFromJson.getBytes())); - NodeList nodeList = doc.getDocumentElement().getChildNodes(); - - String modelVid = "notFound"; - for (int i = 0; i < nodeList.getLength(); i++) { - Node currentNode = nodeList.item(i); - if (currentNode.getNodeName().equals("model-invariant-id")) { - modelVid = currentNode.getTextContent(); - break; - } - } - - assertTrue(modelVid.equals("3d560d81-57d0-438b-a2a1-5334dba0651a")); - } catch (Exception e) { - e.printStackTrace(); - assertTrue(false); - } - } -} -- cgit 1.2.3-korg