summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java247
-rw-r--r--src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java198
-rw-r--r--src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java356
-rw-r--r--src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java271
-rw-r--r--src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java (renamed from src/test/java/org/openecomp/modelloader/restclient/AAIRestClientTest.java)240
-rw-r--r--src/test/java/org/openecomp/modelloader/service/ModelLoaderServiceTest.java115
-rw-r--r--src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java160
-rw-r--r--src/test/resources/logback-test.xml62
-rw-r--r--src/test/resources/model-loader-empty-auth-password.properties74
-rw-r--r--src/test/resources/model-loader-no-auth-password.properties70
-rw-r--r--src/test/resources/model-loader.properties74
-rw-r--r--src/test/resources/models/AAI-Testvsp..vmme_cinder..module-1-resource-1.xml52
-rw-r--r--src/test/resources/models/AAI-Testvsp..vmme_small_ecomp..module-0-resource-1.xml180
-rw-r--r--src/test/resources/models/AAI-VL-resource-1.xml52
-rw-r--r--src/test/resources/models/AAI-stellService-service-1.xml89
-rw-r--r--src/test/resources/models/AAI-testvsp-resource-1.xml89
-rw-r--r--src/test/resources/models/complete-model.xml515
-rw-r--r--src/test/resources/models/incomplete-model.xml37
-rw-r--r--src/test/resources/models/incomplete-models.xml50
-rw-r--r--src/test/resources/models/invalid-model.xml51
-rw-r--r--src/test/resources/models/l3-network-widget.json14
-rw-r--r--src/test/resources/models/l3-network-widget.xml (renamed from src/test/resources/models/vnf-model.xml)46
-rw-r--r--src/test/resources/models/named-query-wan-connector.xml168
-rw-r--r--src/test/resources/models/vnf-model.json10
-rw-r--r--src/test/resources/models/wan-connector-model.xml185
-rw-r--r--src/test/resources/vnfcatalogexample.xml286
26 files changed, 2154 insertions, 1537 deletions
diff --git a/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java b/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java
index 4018f14..0d068d5 100644
--- a/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java
+++ b/src/test/java/org/openecomp/modelloader/config/ModelLoaderConfigTest.java
@@ -1,122 +1,125 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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);
-
- List<String> 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);
-
- 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);
-
- 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);
-
- 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);
- 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);
- aaiClient = new AaiRestClient(config);
-
- assertFalse("No AAI Password should result in no basic authentication",
- aaiClient.useBasicAuth());
- }
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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<String> 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());
+ }
+
+}
diff --git a/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java b/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java
index 1b1d955..c81b51d 100644
--- a/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java
+++ b/src/test/java/org/openecomp/modelloader/entity/catalog/VnfCatalogArtifactHandlerTest.java
@@ -1,98 +1,100 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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);
-
- 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<Artifact> artifacts = new ArrayList<Artifact>();
- 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<String> 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"));
- }
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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<Artifact> artifacts = new ArrayList<Artifact>();
+ 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<String> 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
index f7b7871..994c4db 100644
--- a/src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java
+++ b/src/test/java/org/openecomp/modelloader/entity/model/ModelArtifactParserTest.java
@@ -1,151 +1,205 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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/vnf-model.xml";
-
- try {
- byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE));
-
- ModelArtifactParser parser = new ModelArtifactParser();
- List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
-
- assertTrue(modelList.size() == 1);
-
- ModelArtifact model = (ModelArtifact) modelList.get(0);
- System.out.println(model.toString());
-
- assertTrue(model.getNameVersionId().equalsIgnoreCase("model-vid"));
- assertTrue(model.getType().toString().equalsIgnoreCase("MODEL"));
- 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/wan-connector-model.xml";
-
- try {
- byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE));
-
- ModelArtifactParser parser = new ModelArtifactParser();
- List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
-
- assertTrue(modelList.size() == 1);
-
- ModelArtifact model = (ModelArtifact) modelList.get(0);
- System.out.println(model.toString());
-
- assertTrue(model.getNameVersionId().equalsIgnoreCase("93d9d45d-7eec-4371-9083-675e4c353de3"));
- assertTrue(model.getType().toString().equalsIgnoreCase("MODEL"));
- assertTrue(model.getDependentModelIds().size() == 7);
- assertTrue(model.getDependentModelIds().contains("d09dd9da-0148-46cd-a947-591afc844d24"));
- assertTrue(model.getDependentModelIds().contains("ae16244f-4d29-4801-a559-e25f2db2a4c3"));
- assertTrue(model.getDependentModelIds().contains("a6d9de88-4046-4b78-a59e-5691243d292a"));
- } catch (Exception e) {
- e.printStackTrace();
- assertTrue(false);
- }
- }
-
- @Test
- public void testParseCompleteModel() throws Exception {
- final String MODEL_FILE = "src/test/resources/models/complete-model.xml";
-
- try {
- byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE));
-
- ModelArtifactParser parser = new ModelArtifactParser();
- List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
-
- for (Artifact art : modelList) {
- ModelArtifact model = (ModelArtifact) art;
- System.out.println(model.toString());
- }
-
- assertTrue(modelList.size() == 3);
-
- ModelArtifact modelVdc = (ModelArtifact) modelList.get(0);
- assertTrue(
- modelVdc.getNameVersionId().equalsIgnoreCase("997fc7-fca1-451f-b953-9a1e6197b4d6"));
- assertTrue(modelVdc.getType().toString().equalsIgnoreCase("MODEL"));
- assertTrue(modelVdc.getDependentModelIds().size() == 1);
- assertTrue(modelVdc.getDependentModelIds().contains("93d9d45d-7eec-4371-9083-675e4c353de3"));
-
- ModelArtifact modelPserver = (ModelArtifact) modelList.get(2);
- assertTrue(
- modelPserver.getNameVersionId().equalsIgnoreCase("f2b24d95-c582-48d5-b2d6-c5b3a94ce812"));
- assertTrue(modelPserver.getType().toString().equalsIgnoreCase("MODEL"));
- assertTrue(modelPserver.getDependentModelIds().size() == 2);
- assertTrue(
- modelPserver.getDependentModelIds().contains("35be1acf-1298-48c6-a128-66850083b8bd"));
- assertTrue(
- modelPserver.getDependentModelIds().contains("759dbd4a-2473-46f3-a932-48d987c9b4a1"));
- } catch (Exception e) {
- e.printStackTrace();
- assertTrue(false);
- }
- }
-
- @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));
-
- ModelArtifactParser parser = new ModelArtifactParser();
- List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
-
- assertTrue(modelList.size() == 1);
-
- ModelArtifact model = (ModelArtifact) modelList.get(0);
- System.out.println(model.toString());
-
- assertTrue(model.getNameVersionId().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);
- }
- }
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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<Artifact> 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.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<Artifact> 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 testParseCompleteModel() throws Exception {
+ final String MODEL_FILE = "src/test/resources/models/complete-model.xml";
+
+ try {
+ byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE));
+
+ ModelArtifactParser parser = new ModelArtifactParser();
+ List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
+
+ for (Artifact art : modelList) {
+ ModelArtifact model = (ModelArtifact) art;
+ System.out.println(model.toString());
+ }
+
+ assertTrue(modelList.size() == 5);
+
+ ModelArtifact model1 = (ModelArtifact)modelList.get(0);
+ assertTrue(model1.getModelVerId().equalsIgnoreCase("88bdbadf-db8a-490f-881e-c8effcbc3f66"));
+ assertTrue(model1.getType().toString().equalsIgnoreCase("MODEL"));
+ assertTrue(model1.getDependentModelIds().size() == 1);
+ assertTrue(model1.getDependentModelIds().contains("3d560d81-57d0-438b-a2a1-5334dba0651a|9111f20f-e680-4001-b83f-19a2fc23bfc1"));
+
+ ModelArtifact model4 = (ModelArtifact)modelList.get(4);
+ assertTrue(model4.getModelInvariantId().equalsIgnoreCase("fedf9da3-6a74-4813-8fa2-221a98b0e7ad"));
+ assertTrue(model4.getType().toString().equalsIgnoreCase("MODEL"));
+ assertTrue(model4.getDependentModelIds().size() == 3);
+ assertTrue(model4.getDependentModelIds().contains("5c12984d-db0f-4300-a0e0-9791775cc40f|88bdbadf-db8a-490f-881e-c8effcbc3f66"));
+ assertTrue(model4.getDependentModelIds().contains("82194af1-3c2c-485a-8f44-420e22a9eaa4|46b92144-923a-4d20-b85a-3cbd847668a9"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ assertTrue(false);
+ }
+ }
+
+ @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));
+
+ ModelArtifactParser parser = new ModelArtifactParser();
+ List<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
+
+ assertTrue(modelList.size() == 1);
+
+ ModelArtifact model = (ModelArtifact) modelList.get(0);
+ System.out.println(model.toString());
+
+ assertTrue(model.getNameVersionId().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);
+ }
+ }
+
+ @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<Artifact> 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<Artifact> modelList = parser.parse(xmlBytes, "test-artifact");
+
+ assertTrue(modelList == null || modelList.isEmpty());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ assertTrue(false);
+ }
+ }
+
+ @Test
+ public void testParseModelFileIncompleteArtifacts() throws Exception {
+ final String MODEL_FILE = "src/test/resources/models/incomplete-models.xml";
+
+ try {
+ byte[] xmlBytes = Files.readAllBytes(Paths.get(MODEL_FILE));
+
+ ModelArtifactParser parser = new ModelArtifactParser();
+ List<Artifact> 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/ModelSorterTest.java b/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java
index dea537f..6a9cf88 100644
--- a/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java
+++ b/src/test/java/org/openecomp/modelloader/entity/model/ModelSorterTest.java
@@ -1,133 +1,138 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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<Artifact> emptyList = Collections.emptyList();
-
- ModelSorter sorter = new ModelSorter();
- sorter = new ModelSorter();
-
- List<Artifact> sortedList = sorter.sort(emptyList);
- assertNotNull(sortedList);
- assertEquals(0, sortedList.size());
-
- }
-
- @Test
- public void singleModel() {
-
- List<Artifact> modelList = new ArrayList<Artifact>();
-
- ModelArtifact model = new ModelArtifact();
- model.setNameVersionId("aaaaa");
- model.addDependentModelId("xyz");
- modelList.add(model);
-
- ModelSorter sorter = new ModelSorter();
- sorter = new ModelSorter();
-
- List<Artifact> 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<Artifact> modelList = new ArrayList<Artifact>();
-
- ModelArtifact aaaa = new ModelArtifact();
- aaaa.setNameVersionId("aaaa");
- aaaa.addDependentModelId("cccc");
-
- ModelArtifact bbbb = new ModelArtifact();
- bbbb.setNameVersionId("bbbb");
- bbbb.addDependentModelId("aaaa");
-
- ModelArtifact cccc = new ModelArtifact();
- cccc.setNameVersionId("cccc");
-
- modelList.add(aaaa);
- modelList.add(bbbb);
- modelList.add(cccc);
-
- ModelSorter sorter = new ModelSorter();
- sorter = new ModelSorter();
-
- List<Artifact> 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(expected = RuntimeException.class)
- public void circularDependency() {
-
- List<Artifact> modelList = new ArrayList<Artifact>();
-
- ModelArtifact aaaa = new ModelArtifact();
- aaaa.setNameVersionId("aaaa");
- aaaa.addDependentModelId("bbbb");
-
- ModelArtifact bbbb = new ModelArtifact();
- bbbb.setNameVersionId("bbbb");
- bbbb.addDependentModelId("aaaa");
-
- modelList.add(aaaa);
- modelList.add(bbbb);
-
- ModelSorter sorter = new ModelSorter();
- sorter = new ModelSorter();
-
- List<Artifact> sortedList = sorter.sort(modelList);
- assertNotNull(sortedList);
- assertEquals(3, sortedList.size());
-
- }
-
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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<Artifact> emptyList = Collections.emptyList();
+
+ ModelSorter sorter = new ModelSorter();
+ sorter = new ModelSorter();
+
+ List<Artifact> sortedList = sorter.sort(emptyList);
+ assertNotNull(sortedList);
+ assertEquals(0, sortedList.size());
+
+ }
+
+ @Test
+ public void singleModel() {
+
+ List<Artifact> modelList = new ArrayList<Artifact>();
+
+ ModelArtifact model = new ModelArtifact();
+ model.setNameVersionId("aaaaa");
+ model.addDependentModelId("xyz");
+ modelList.add(model);
+
+ ModelSorter sorter = new ModelSorter();
+ sorter = new ModelSorter();
+
+ List<Artifact> 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<Artifact> modelList = new ArrayList<Artifact>();
+
+ 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<Artifact> 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(expected = RuntimeException.class)
+ public void circularDependency() {
+
+ List<Artifact> modelList = new ArrayList<Artifact>();
+
+ ModelArtifact aaaa = new ModelArtifact();
+ aaaa.setNameVersionId("aaaa");
+ aaaa.addDependentModelId("bbbb");
+
+ ModelArtifact bbbb = new ModelArtifact();
+ bbbb.setNameVersionId("bbbb");
+ bbbb.addDependentModelId("aaaa");
+
+ modelList.add(aaaa);
+ modelList.add(bbbb);
+
+ ModelSorter sorter = new ModelSorter();
+ sorter = new ModelSorter();
+
+ List<Artifact> sortedList = sorter.sort(modelList);
+ assertNotNull(sortedList);
+ assertEquals(3, sortedList.size());
+
+ }
+
+}
diff --git a/src/test/java/org/openecomp/modelloader/restclient/AAIRestClientTest.java b/src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java
index 08d7afe..dc6f9d6 100644
--- a/src/test/java/org/openecomp/modelloader/restclient/AAIRestClientTest.java
+++ b/src/test/java/org/openecomp/modelloader/restclient/AaiRestClientTest.java
@@ -1,119 +1,121 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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().trim();
- } else {
- subURL = config.getAaiNamedQueryUrl().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.getNameVersionId();
- return url;
- }
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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().trim();
+ } else {
+ subURL = config.getAaiNamedQueryUrl().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.getNameVersionId();
+ return url;
+ }
+}
diff --git a/src/test/java/org/openecomp/modelloader/service/ModelLoaderServiceTest.java b/src/test/java/org/openecomp/modelloader/service/ModelLoaderServiceTest.java
deleted file mode 100644
index c2893a9..0000000
--- a/src/test/java/org/openecomp/modelloader/service/ModelLoaderServiceTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.modelloader.service;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.openecomp.modelloader.config.ModelLoaderConfig;
-import org.openecomp.modelloader.notification.EventCallback;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import org.openecomp.sdc.api.IDistributionClient;
-import org.openecomp.sdc.api.results.IDistributionClientResult;
-import org.openecomp.sdc.impl.DistributionClientFactory;
-import org.openecomp.sdc.utils.DistributionActionResultEnum;
-
-@PrepareForTest({ DistributionClientFactory.class })
-@RunWith(PowerMockRunner.class)
-public class ModelLoaderServiceTest {
-
- /*
- * //TODO this should be re-added once we come up with a strategy to fail
- * gracefully
- *
- * @Test public void testNonExistentConfiguration(){
- * ModelLoaderService.CONFIG_LOCATION = "FAKELOCATION";
- *
- * try{ new ModelLoaderService().start(); }catch(RuntimeException e){
- * assertTrue("Got unexpected message from error log",
- * e.getMessage().contains("Failed to load configuration")); return; }
- *
- * fail("Expecting runtime exception"); }
- */
-
- @Test
- public void testConfigureStartDistributionClient() {
- PowerMockito.mockStatic(DistributionClientFactory.class);
-
- IDistributionClient mockClient = mock(IDistributionClient.class);
- ModelLoaderConfig mockConfig = mock(ModelLoaderConfig.class);
-
- when(DistributionClientFactory.createDistributionClient()).thenReturn(mockClient);
-
- IDistributionClientResult result = mock(IDistributionClientResult.class);
-
- when(result.getDistributionActionResult()).thenReturn(DistributionActionResultEnum.SUCCESS);
- when(mockClient.init(Matchers.<ModelLoaderConfig> any(), Matchers.<EventCallback> any()))
- .thenReturn(result);
- when(mockClient.start()).thenReturn(result);
-
- new ModelLoaderService().init();
-
- // Validate that the client was initialized and started
- verify(mockClient, times(1)).init(Matchers.<ModelLoaderConfig> any(),
- Matchers.<EventCallback> any());
- verify(mockClient, times(1)).start();
- }
-
- @Test
- public void testInitializeButNotStarted() {
- PowerMockito.mockStatic(DistributionClientFactory.class);
-
- IDistributionClient mockClient = mock(IDistributionClient.class);
- ModelLoaderConfig mockConfig = mock(ModelLoaderConfig.class);
-
- DistributionActionResultEnum failureReason = DistributionActionResultEnum.ASDC_CONNECTION_FAILED;
-
- when(DistributionClientFactory.createDistributionClient()).thenReturn(mockClient);
-
- IDistributionClientResult initResult = mock(IDistributionClientResult.class);
- when(initResult.getDistributionActionResult()).thenReturn(DistributionActionResultEnum.SUCCESS);
- IDistributionClientResult startResult = mock(IDistributionClientResult.class);
- when(startResult.getDistributionActionResult()).thenReturn(failureReason);
-
- when(mockClient.init(Matchers.<ModelLoaderConfig> any(), Matchers.<EventCallback> any()))
- .thenReturn(initResult);
- when(mockClient.start()).thenReturn(startResult);
-
- // TODO this should be re-added once we come up with a strategy to fail
- // gracefully
- /*
- * try{ new ModelLoaderService().init(mockConfig); }catch(RuntimeException
- * e){ assertTrue(e.getMessage().contains(failureReason.toString()));
- * return; }
- *
- * fail("Expecting runtime exception with failure: " +
- * failureReason.toString());
- */
- }
-}
diff --git a/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java b/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java
index 4654c93..da89c78 100644
--- a/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java
+++ b/src/test/java/org/openecomp/modelloader/util/JsonXmlConverterTest.java
@@ -1,79 +1,81 @@
-/*-
- * ============LICENSE_START=======================================================
- * MODEL LOADER SERVICE
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-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/vnf-model.xml";
- final String JSON_MODEL_FILE = "src/test/resources/models/vnf-model.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-name-version-id")) {
- modelVid = currentNode.getTextContent();
- break;
- }
- }
-
- assertTrue(modelVid.equals("model-vid"));
- } catch (Exception e) {
- e.printStackTrace();
- assertTrue(false);
- }
- }
-}
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * 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 and OpenECOMP are trademarks
+ * and service marks 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);
+ }
+ }
+}
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
index 1252135..3f0fb7a 100644
--- a/src/test/resources/logback-test.xml
+++ b/src/test/resources/logback-test.xml
@@ -1,37 +1,37 @@
-<!--
+<!--
============LICENSE_START=======================================================
MODEL LOADER SERVICE
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
+ 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=========================================================
- -->
-
-<configuration debug="false">
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
- </encoder>
- </appender>
-
- <logger name="com.att.eelf" level="DEBUG" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
- <root level="debug">
- <appender-ref ref="STDOUT" />
- </root>
-</configuration>
+ ============LICENSE_END=========================================================
+ -->
+
+<configuration debug="false">
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="com.att.eelf" level="DEBUG" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <root level="debug">
+ <appender-ref ref="STDOUT" />
+ </root>
+</configuration>
diff --git a/src/test/resources/model-loader-empty-auth-password.properties b/src/test/resources/model-loader-empty-auth-password.properties
index 69f3da1..34432a4 100644
--- a/src/test/resources/model-loader-empty-auth-password.properties
+++ b/src/test/resources/model-loader-empty-auth-password.properties
@@ -1,43 +1,43 @@
-###
+###
# ============LICENSE_START=======================================================
# MODEL LOADER SERVICE
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
+# 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=========================================================
-###
-
-# Model Loader Distribution Client Configuration
-ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
-ml.distribution.ASDC_ADDRESS=
-ml.distribution.CONSUMER_GROUP=aai-ml-group-test
-ml.distribution.CONSUMER_ID=aai-ml-id-test
-ml.distribution.ENVIRONMENT_NAME=
-ml.distribution.KEYSTORE_PASSWORD=
-ml.distribution.KEYSTORE_FILE=asdc-client.jks
-ml.distribution.PASSWORD=
-ml.distribution.POLLING_INTERVAL=30
-ml.distribution.POLLING_TIMEOUT=20
-ml.distribution.USER=ci
-ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
-
-# Model Loader AAI REST Client Configuration
-ml.aai.BASE_URL=
-ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
-ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
-ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
-ml.aai.KEYSTORE_FILE=aai-client-cert.p12
-ml.aai.KEYSTORE_PASSWORD=
-ml.aai.AUTH_USER=ModelLoader
-ml.aai.AUTH_PASSWORD=
+# ============LICENSE_END=========================================================
+###
+
+# Model Loader Distribution Client Configuration
+ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
+ml.distribution.ASDC_ADDRESS=
+ml.distribution.CONSUMER_GROUP=aai-ml-group-test
+ml.distribution.CONSUMER_ID=aai-ml-id-test
+ml.distribution.ENVIRONMENT_NAME=
+ml.distribution.KEYSTORE_PASSWORD=
+ml.distribution.KEYSTORE_FILE=asdc-client.jks
+ml.distribution.PASSWORD=
+ml.distribution.POLLING_INTERVAL=30
+ml.distribution.POLLING_TIMEOUT=20
+ml.distribution.USER=ci
+ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
+
+# Model Loader AAI REST Client Configuration
+ml.aai.BASE_URL=
+ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
+ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
+ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
+ml.aai.KEYSTORE_FILE=aai-client-cert.p12
+ml.aai.KEYSTORE_PASSWORD=
+ml.aai.AUTH_USER=ModelLoader
+ml.aai.AUTH_PASSWORD=
diff --git a/src/test/resources/model-loader-no-auth-password.properties b/src/test/resources/model-loader-no-auth-password.properties
index 8d59db1..035d3e8 100644
--- a/src/test/resources/model-loader-no-auth-password.properties
+++ b/src/test/resources/model-loader-no-auth-password.properties
@@ -1,41 +1,41 @@
-###
+###
# ============LICENSE_START=======================================================
# MODEL LOADER SERVICE
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
+# 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=========================================================
-###
-
-# Model Loader Distribution Client Configuration
-ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
-ml.distribution.ASDC_ADDRESS=
-ml.distribution.CONSUMER_GROUP=aai-ml-group-test
-ml.distribution.CONSUMER_ID=aai-ml-id-test
-ml.distribution.ENVIRONMENT_NAME=
-ml.distribution.KEYSTORE_PASSWORD=
-ml.distribution.KEYSTORE_FILE=asdc-client.jks
-ml.distribution.PASSWORD=
-ml.distribution.POLLING_INTERVAL=30
-ml.distribution.POLLING_TIMEOUT=20
-ml.distribution.USER=ci
-ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
-
-# Model Loader AAI REST Client Configuration
-ml.aai.BASE_URL=
-ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
-ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
-ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
-ml.aai.KEYSTORE_FILE=aai-client-cert.p12
-ml.aai.KEYSTORE_PASSWORD=
+# ============LICENSE_END=========================================================
+###
+
+# Model Loader Distribution Client Configuration
+ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
+ml.distribution.ASDC_ADDRESS=
+ml.distribution.CONSUMER_GROUP=aai-ml-group-test
+ml.distribution.CONSUMER_ID=aai-ml-id-test
+ml.distribution.ENVIRONMENT_NAME=
+ml.distribution.KEYSTORE_PASSWORD=
+ml.distribution.KEYSTORE_FILE=asdc-client.jks
+ml.distribution.PASSWORD=
+ml.distribution.POLLING_INTERVAL=30
+ml.distribution.POLLING_TIMEOUT=20
+ml.distribution.USER=ci
+ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
+
+# Model Loader AAI REST Client Configuration
+ml.aai.BASE_URL=
+ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
+ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
+ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
+ml.aai.KEYSTORE_FILE=aai-client-cert.p12
+ml.aai.KEYSTORE_PASSWORD=
diff --git a/src/test/resources/model-loader.properties b/src/test/resources/model-loader.properties
index 69f3da1..34432a4 100644
--- a/src/test/resources/model-loader.properties
+++ b/src/test/resources/model-loader.properties
@@ -1,43 +1,43 @@
-###
+###
# ============LICENSE_START=======================================================
# MODEL LOADER SERVICE
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
+# 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=========================================================
-###
-
-# Model Loader Distribution Client Configuration
-ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
-ml.distribution.ASDC_ADDRESS=
-ml.distribution.CONSUMER_GROUP=aai-ml-group-test
-ml.distribution.CONSUMER_ID=aai-ml-id-test
-ml.distribution.ENVIRONMENT_NAME=
-ml.distribution.KEYSTORE_PASSWORD=
-ml.distribution.KEYSTORE_FILE=asdc-client.jks
-ml.distribution.PASSWORD=
-ml.distribution.POLLING_INTERVAL=30
-ml.distribution.POLLING_TIMEOUT=20
-ml.distribution.USER=ci
-ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
-
-# Model Loader AAI REST Client Configuration
-ml.aai.BASE_URL=
-ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
-ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
-ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
-ml.aai.KEYSTORE_FILE=aai-client-cert.p12
-ml.aai.KEYSTORE_PASSWORD=
-ml.aai.AUTH_USER=ModelLoader
-ml.aai.AUTH_PASSWORD=
+# ============LICENSE_END=========================================================
+###
+
+# Model Loader Distribution Client Configuration
+ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
+ml.distribution.ASDC_ADDRESS=
+ml.distribution.CONSUMER_GROUP=aai-ml-group-test
+ml.distribution.CONSUMER_ID=aai-ml-id-test
+ml.distribution.ENVIRONMENT_NAME=
+ml.distribution.KEYSTORE_PASSWORD=
+ml.distribution.KEYSTORE_FILE=asdc-client.jks
+ml.distribution.PASSWORD=
+ml.distribution.POLLING_INTERVAL=30
+ml.distribution.POLLING_TIMEOUT=20
+ml.distribution.USER=ci
+ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
+
+# Model Loader AAI REST Client Configuration
+ml.aai.BASE_URL=
+ml.aai.MODEL_URL=/aai/v8/service-design-and-creation/models/model/
+ml.aai.NAMED_QUERY_URL=/aai/v8/service-design-and-creation/named-queries/named-query/
+ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
+ml.aai.KEYSTORE_FILE=aai-client-cert.p12
+ml.aai.KEYSTORE_PASSWORD=
+ml.aai.AUTH_USER=ModelLoader
+ml.aai.AUTH_PASSWORD=
diff --git a/src/test/resources/models/AAI-Testvsp..vmme_cinder..module-1-resource-1.xml b/src/test/resources/models/AAI-Testvsp..vmme_cinder..module-1-resource-1.xml
new file mode 100644
index 0000000..7bd1073
--- /dev/null
+++ b/src/test/resources/models/AAI-Testvsp..vmme_cinder..module-1-resource-1.xml
@@ -0,0 +1,52 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>5a2aac99-ffe8-415f-9242-420ed10da23e</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>29d3fc43-4ff2-4e5c-acd0-7370f5b2715a</model-version-id>
+ <model-name>Testvsp..vmme_cinder..module-1</model-name>
+ <model-version>1</model-version>
+ <model-description></model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>c00563ae-812b-4e62-8330-7c4d0f47088a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ef86f9c5-2165-44f3-8fc3-96018b609ea5</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/AAI-Testvsp..vmme_small_ecomp..module-0-resource-1.xml b/src/test/resources/models/AAI-Testvsp..vmme_small_ecomp..module-0-resource-1.xml
new file mode 100644
index 0000000..8fe5319
--- /dev/null
+++ b/src/test/resources/models/AAI-Testvsp..vmme_small_ecomp..module-0-resource-1.xml
@@ -0,0 +1,180 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>1e8fdfc0-03cf-4742-b060-dab818954d67</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>da6769f0-aa58-4e90-b2c9-664c2630d131</model-version-id>
+ <model-name>Testvsp..vmme_small_ecomp..module-0</model-name>
+ <model-version>1</model-version>
+ <model-description></model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>f6a038c2-820c-42ba-8c2b-375e24e8f932</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3f4c7204-739b-4bbb-87a7-8a6856439c90</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>abcc54bc-bb74-49dc-9043-7f7171707545</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>97c26c99-6870-44c1-8a07-1d900d3f4ce6</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>36200fb5-f251-4f5d-a520-7c5ad5c2cd4b</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>bace8d1c-a261-4041-9e37-823117415d0f</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>a32613fd-18b9-459e-aab8-fffb3912966a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>cea0a982-8d55-4093-921e-418fbccf7060</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>5761e0a7-c6df-4d8a-9ebd-b8f445054dec</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>96129eb9-f0de-4e05-8af2-73146473f766</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>8ecb2c5d-7176-4317-a255-26274edfdd53</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ff69d4e0-a8e8-4108-bdb0-dd63217e63c7</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>9111f20f-e680-4001-b83f-19a2fc23bfc1</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3d560d81-57d0-438b-a2a1-5334dba0651a</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>c00563ae-812b-4e62-8330-7c4d0f47088a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ef86f9c5-2165-44f3-8fc3-96018b609ea5</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/AAI-VL-resource-1.xml b/src/test/resources/models/AAI-VL-resource-1.xml
new file mode 100644
index 0000000..98941ad
--- /dev/null
+++ b/src/test/resources/models/AAI-VL-resource-1.xml
@@ -0,0 +1,52 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>5c12984d-db0f-4300-a0e0-9791775cc40f</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>88bdbadf-db8a-490f-881e-c8effcbc3f66</model-version-id>
+ <model-name>VL</model-name>
+ <model-version>1</model-version>
+ <model-description> Virtual link (VL) describes the basic topology of the connectivity as well as other required parameters (e.g. bandwidth and QoS class). </model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>9111f20f-e680-4001-b83f-19a2fc23bfc1</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3d560d81-57d0-438b-a2a1-5334dba0651a</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/AAI-stellService-service-1.xml b/src/test/resources/models/AAI-stellService-service-1.xml
new file mode 100644
index 0000000..378b09e
--- /dev/null
+++ b/src/test/resources/models/AAI-stellService-service-1.xml
@@ -0,0 +1,89 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>fedf9da3-6a74-4813-8fa2-221a98b0e7ad</model-invariant-id>
+ <model-type>service</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>e0373537-7f66-4094-9939-e2f5de6ff5f6</model-version-id>
+ <model-name>stellService</model-name>
+ <model-version>1</model-version>
+ <model-description>fd</model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>88bdbadf-db8a-490f-881e-c8effcbc3f66</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>5c12984d-db0f-4300-a0e0-9791775cc40f</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>374d0899-bbc2-4403-9320-fe9bebef75c6</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>959b7c09-9f34-4e5f-8b63-505381db176e</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>46b92144-923a-4d20-b85a-3cbd847668a9</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>82194af1-3c2c-485a-8f44-420e22a9eaa4</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/AAI-testvsp-resource-1.xml b/src/test/resources/models/AAI-testvsp-resource-1.xml
new file mode 100644
index 0000000..c9a70ff
--- /dev/null
+++ b/src/test/resources/models/AAI-testvsp-resource-1.xml
@@ -0,0 +1,89 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>959b7c09-9f34-4e5f-8b63-505381db176e</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>374d0899-bbc2-4403-9320-fe9bebef75c6</model-version-id>
+ <model-name>testvsp</model-name>
+ <model-version>1</model-version>
+ <model-description>nkjlkl</model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>da6769f0-aa58-4e90-b2c9-664c2630d131</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>1e8fdfc0-03cf-4742-b060-dab818954d67</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>29d3fc43-4ff2-4e5c-acd0-7370f5b2715a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>5a2aac99-ffe8-415f-9242-420ed10da23e</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>93a6166f-b3d5-4f06-b4ba-aed48d009ad9</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>acc6edd8-a8d4-4b93-afaa-0994068be14c</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/complete-model.xml b/src/test/resources/models/complete-model.xml
index 45e849b..394c073 100644
--- a/src/test/resources/models/complete-model.xml
+++ b/src/test/resources/models/complete-model.xml
@@ -1,143 +1,384 @@
-<!--
+<!--
============LICENSE_START=======================================================
MODEL LOADER SERVICE
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
+ 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=========================================================
- -->
-
-<models xmlns="http://org.openecomp.aai.inventory/v8">
- <model>
- <model-name-version-id>997fc7-fca1-451f-b953-9a1e6197b4d6
- </model-name-version-id>
- <model-type>widget</model-type>
- <model-name>vdc</model-name>
- <model-id>897df7ea-8938-42b0-bc57-46e913a4d93b</model-id>
- <model-version>v1.0</model-version>
- <resource-version>1463175188</resource-version>
- <relationship-list>
- <relationship>
- <related-to>model-element</related-to>
- <related-link>https://localhost:8443/aai/v8/service-design-and-creation/model-elements/model-element/ccb3a5a4-1722-4213-8785-2b6b5527d453/
- </related-link>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>ccb3a5a4-1722-4213-8785-2b6b5527d453
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>df2e4cc0-18ca-4046-9c1b-2abec86a58d6
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>93d9d45d-7eec-4371-9083-675e4c353de3
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model>
- <model>
- <model-name-version-id>8da97b81-e0e9-4157-a4cd-af3ba52871d6
- </model-name-version-id>
- <model-type>resource</model-type>
- <model-name>vDbe</model-name>
- <model-id>77b83c95-7707-4624-8bfe-9110b9c2dc88</model-id>
- <model-version>v1.0</model-version>
- <resource-version>1463175188</resource-version>
- <relationship-list>
- <relationship>
- <related-to>model-element</related-to>
- <related-link>https://localhost:8443/aai/v8/service-design-and-creation/model-elements/model-element/fc3a2260-d0ee-4c8e-b7e9-74791d7c5721/
- </related-link>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>fc3a2260-d0ee-4c8e-b7e9-74791d7c5721
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>element-choice-set.element-choice-set-uuid
- </relationship-key>
- <relationship-value>646ee687-1475-419d-bd10-f3760d5430dc
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>constrained-element-set.constrained-element-set-uuid
- </relationship-key>
- <relationship-value>999</relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>df2e4cc0-18ca-4046-9c1b-2abec86a58d6
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>93d9d45d-7eec-4371-9083-675e4c353de3
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model>
- <model>
- <model-name-version-id>f2b24d95-c582-48d5-b2d6-c5b3a94ce812
- </model-name-version-id>
- <model-type>widget</model-type>
- <model-name>pserver</model-name>
- <model-id>a033a95f-93af-4dc6-811e-f818baf13ef1</model-id>
- <model-version>v1.0</model-version>
- <resource-version>1463175178</resource-version>
- <relationship-list>
- <relationship>
- <related-to>model-element</related-to>
- <related-link>https://localhost:8443/aai/v8/service-design-and-creation/model-elements/model-element/5eab2693-78ec-446a-afe4-14332e348246/
- </related-link>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>5eab2693-78ec-446a-afe4-14332e348246
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>35be1acf-1298-48c6-a128-66850083b8bd
- </relationship-value>
- </relationship-data>
- </relationship>
- <relationship>
- <related-to>model-element</related-to>
- <related-link>https://localhost:8443/aai/v8/service-design-and-creation/model-elements/model-element/f7659dac-6311-45b6-b483-60b39364a85a/
- </related-link>
- <relationship-data>
- <relationship-key>model-element.model-element-uuid
- </relationship-key>
- <relationship-value>f7659dac-6311-45b6-b483-60b39364a85a
- </relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>759dbd4a-2473-46f3-a932-48d987c9b4a1
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model>
-
-</models>
+ ============LICENSE_END=========================================================
+ -->
+
+<models xmlns="http://org.openecomp.aai.inventory/v9">
+ <model>
+ <model-invariant-id>5c12984d-db0f-4300-a0e0-9791775cc40f</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>88bdbadf-db8a-490f-881e-c8effcbc3f66</model-version-id>
+ <model-name>VL</model-name>
+ <model-version>1</model-version>
+ <model-description> Virtual link (VL) describes the basic topology of the connectivity as well as other required parameters (e.g. bandwidth and QoS class). </model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>9111f20f-e680-4001-b83f-19a2fc23bfc1</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3d560d81-57d0-438b-a2a1-5334dba0651a</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
+<model>
+ <model-invariant-id>1e8fdfc0-03cf-4742-b060-dab818954d67</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>da6769f0-aa58-4e90-b2c9-664c2630d131</model-version-id>
+ <model-name>Testvsp..vmme_small_ecomp..module-0</model-name>
+ <model-version>1</model-version>
+ <model-description></model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>f6a038c2-820c-42ba-8c2b-375e24e8f932</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3f4c7204-739b-4bbb-87a7-8a6856439c90</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>abcc54bc-bb74-49dc-9043-7f7171707545</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>97c26c99-6870-44c1-8a07-1d900d3f4ce6</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>36200fb5-f251-4f5d-a520-7c5ad5c2cd4b</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>bace8d1c-a261-4041-9e37-823117415d0f</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>a32613fd-18b9-459e-aab8-fffb3912966a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>cea0a982-8d55-4093-921e-418fbccf7060</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>5761e0a7-c6df-4d8a-9ebd-b8f445054dec</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>96129eb9-f0de-4e05-8af2-73146473f766</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>8ecb2c5d-7176-4317-a255-26274edfdd53</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ff69d4e0-a8e8-4108-bdb0-dd63217e63c7</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>9111f20f-e680-4001-b83f-19a2fc23bfc1</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3d560d81-57d0-438b-a2a1-5334dba0651a</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>c00563ae-812b-4e62-8330-7c4d0f47088a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ef86f9c5-2165-44f3-8fc3-96018b609ea5</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
+<model>
+ <model-invariant-id>5a2aac99-ffe8-415f-9242-420ed10da23e</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>29d3fc43-4ff2-4e5c-acd0-7370f5b2715a</model-version-id>
+ <model-name>Testvsp..vmme_cinder..module-1</model-name>
+ <model-version>1</model-version>
+ <model-description></model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>c00563ae-812b-4e62-8330-7c4d0f47088a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>ef86f9c5-2165-44f3-8fc3-96018b609ea5</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
+<model>
+ <model-invariant-id>959b7c09-9f34-4e5f-8b63-505381db176e</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>374d0899-bbc2-4403-9320-fe9bebef75c6</model-version-id>
+ <model-name>testvsp</model-name>
+ <model-version>1</model-version>
+ <model-description>nkjlkl</model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>da6769f0-aa58-4e90-b2c9-664c2630d131</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>1e8fdfc0-03cf-4742-b060-dab818954d67</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>29d3fc43-4ff2-4e5c-acd0-7370f5b2715a</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>5a2aac99-ffe8-415f-9242-420ed10da23e</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>93a6166f-b3d5-4f06-b4ba-aed48d009ad9</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>acc6edd8-a8d4-4b93-afaa-0994068be14c</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
+<model>
+ <model-invariant-id>fedf9da3-6a74-4813-8fa2-221a98b0e7ad</model-invariant-id>
+ <model-type>service</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>e0373537-7f66-4094-9939-e2f5de6ff5f6</model-version-id>
+ <model-name>stellService</model-name>
+ <model-version>1</model-version>
+ <model-description>fd</model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>88bdbadf-db8a-490f-881e-c8effcbc3f66</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>5c12984d-db0f-4300-a0e0-9791775cc40f</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>374d0899-bbc2-4403-9320-fe9bebef75c6</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>959b7c09-9f34-4e5f-8b63-505381db176e</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>46b92144-923a-4d20-b85a-3cbd847668a9</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>82194af1-3c2c-485a-8f44-420e22a9eaa4</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+ </model>
+</models>
diff --git a/src/test/resources/models/incomplete-model.xml b/src/test/resources/models/incomplete-model.xml
new file mode 100644
index 0000000..b30d4d7
--- /dev/null
+++ b/src/test/resources/models/incomplete-model.xml
@@ -0,0 +1,37 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-name>VL</model-name>
+ <model-version>1</model-version>
+ <model-description> Virtual link (VL) describes the basic topology of the connectivity as well as other required parameters (e.g. bandwidth and QoS class). </model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/incomplete-models.xml b/src/test/resources/models/incomplete-models.xml
new file mode 100644
index 0000000..56b10de
--- /dev/null
+++ b/src/test/resources/models/incomplete-models.xml
@@ -0,0 +1,50 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<models xmlns="http://org.openecomp.aai.inventory/v9">
+<model>
+ <model-invariant-id>3d560d81-57d0-438b-a2a1-5334dba0651a</model-invariant-id>
+ <model-type>widget</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>9111f20f-e680-4001-b83f-19a2fc23bfc1</model-version-id>
+ <model-version>1.0</model-version>
+ <model-name>l3-network</model-name>
+ </model-ver>
+ </model-vers>
+</model>
+<model>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-name>VL</model-name>
+ <model-version>1</model-version>
+ <model-description> Virtual link (VL) describes the basic topology of the connectivity as well as other required parameters (e.g. bandwidth and QoS class). </model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
+</model>
+</models>
diff --git a/src/test/resources/models/invalid-model.xml b/src/test/resources/models/invalid-model.xml
new file mode 100644
index 0000000..906cd21
--- /dev/null
+++ b/src/test/resources/models/invalid-model.xml
@@ -0,0 +1,51 @@
+<!--
+ ============LICENSE_START=======================================================
+ MODEL LOADER SERVICE
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>5c12984d-db0f-4300-a0e0-9791775cc40f</model-invariant-id>
+ <model-type>resource</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>88bdbadf-db8a-490f-881e-c8effcbc3f66</model-version-id>
+ <model-name>VL</model-name>
+ <model-version>1</model-version>
+ <model-description> Virtual link (VL) describes the basic topology of the connectivity as well as other required parameters (e.g. bandwidth and QoS class). </model-description>
+ <model-elements>
+ <model-element>
+ <new-data-del-flag>F</new-data-del-flag>
+ <cardinality>unbounded</cardinality>
+ <model-elements/>
+ <relationship-list>
+ <relationship>
+ <related-to>model-ver</related-to>
+ <relationship-data>
+ <relationship-key>model-ver.model-version-id</relationship-key>
+ <relationship-value>9111f20f-e680-4001-b83f-19a2fc23bfc1</relationship-value>
+ </relationship-data>
+ <relationship-data>
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>3d560d81-57d0-438b-a2a1-5334dba0651a</relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </model-element>
+ </model-elements>
+ </model-ver>
+ </model-vers>
diff --git a/src/test/resources/models/l3-network-widget.json b/src/test/resources/models/l3-network-widget.json
new file mode 100644
index 0000000..22304ac
--- /dev/null
+++ b/src/test/resources/models/l3-network-widget.json
@@ -0,0 +1,14 @@
+{
+ "model":
+ {
+ "model-invariant-id" : "3d560d81-57d0-438b-a2a1-5334dba0651a",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "9111f20f-e680-4001-b83f-19a2fc23bfc1",
+ "model-version" : "1.0",
+ "model-name" : "l3-network"
+ } ]
+ }
+ }
+}
diff --git a/src/test/resources/models/vnf-model.xml b/src/test/resources/models/l3-network-widget.xml
index 2dd44b5..1e50300 100644
--- a/src/test/resources/models/vnf-model.xml
+++ b/src/test/resources/models/l3-network-widget.xml
@@ -1,27 +1,31 @@
-<!--
+<!--
============LICENSE_START=======================================================
MODEL LOADER SERVICE
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
+ 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=========================================================
- -->
-
-<model xmlns="http://org.openecomp.aai.inventory/v8">
- <model-id>model-id</model-id>
- <model-type>widget</model-type>
- <model-name>generic-vnf</model-name>
- <model-version>v1.0</model-version>
- <model-name-version-id>model-vid</model-name-version-id>
-</model>
+ ============LICENSE_END=========================================================
+ -->
+
+<model xmlns="http://org.openecomp.aai.inventory/v9">
+ <model-invariant-id>3d560d81-57d0-438b-a2a1-5334dba0651a</model-invariant-id>
+ <model-type>widget</model-type>
+ <model-vers>
+ <model-ver>
+ <model-version-id>9111f20f-e680-4001-b83f-19a2fc23bfc1</model-version-id>
+ <model-version>1.0</model-version>
+ <model-name>l3-network</model-name>
+ </model-ver>
+ </model-vers>
+</model>
diff --git a/src/test/resources/models/named-query-wan-connector.xml b/src/test/resources/models/named-query-wan-connector.xml
index 5606cf8..51047df 100644
--- a/src/test/resources/models/named-query-wan-connector.xml
+++ b/src/test/resources/models/named-query-wan-connector.xml
@@ -1,90 +1,90 @@
-<!--
+<!--
============LICENSE_START=======================================================
MODEL LOADER SERVICE
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
+ 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=========================================================
- -->
-
-<named-query xmlns="http://org.openecomp.aai.inventory/v8">
- <named-query-uuid>94cac189-8d88-4d63-a194-f44214e080ff
- </named-query-uuid>
- <named-query-name>wan-connector</named-query-name>
- <named-query-version>v1.0</named-query-version>
- <description>Named Query - Wan Connector</description>
- <named-query-elements>
- <named-query-element>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- connector -->
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>d09dd9da-0148-46cd-a947-591afc844d24
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <named-query-elements>
- <named-query-element>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- vdc -->
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>997fc7-fca1-451f-b953-9a1e6197b4d6
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <named-query-elements>
- <named-query-element>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- logical-link -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>897df7ea-8938-42b0-bc57-46e913a4d93b
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <named-query-elements>
- <named-query-element>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- pserver -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>f2b24d95-c582-48d5-b2d6-c5b3a94ce812
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </named-query-element>
- </named-query-elements>
- </named-query-element>
- </named-query-elements>
- </named-query-element>
- </named-query-elements>
- </named-query-element>
- </named-query-elements>
-</named-query>
-
+ ============LICENSE_END=========================================================
+ -->
+
+<named-query xmlns="http://org.openecomp.aai.inventory/v7">
+ <named-query-uuid>94cac189-8d88-4d63-a194-f44214e080ff
+ </named-query-uuid>
+ <named-query-name>wan-connector</named-query-name>
+ <named-query-version>v1.0</named-query-version>
+ <description>Named Query - Wan Connector</description>
+ <named-query-elements>
+ <named-query-element>
+ <relationship-list>
+ <relationship>
+ <related-to>model</related-to>
+ <relationship-data>
+ <!-- connector -->
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>d09dd9da-0148-46cd-a947-591afc844d24
+ </relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ <named-query-elements>
+ <named-query-element>
+ <relationship-list>
+ <relationship>
+ <related-to>model</related-to>
+ <relationship-data>
+ <!-- vdc -->
+ <relationship-key>model.model-invariant-id</relationship-key>
+ <relationship-value>997fc7-fca1-451f-b953-9a1e6197b4d6
+ </relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ <named-query-elements>
+ <named-query-element>
+ <relationship-list>
+ <relationship>
+ <related-to>model</related-to>
+ <relationship-data>
+ <!-- logical-link -->
+ <relationship-key>model.model-invariant-id
+ </relationship-key>
+ <relationship-value>897df7ea-8938-42b0-bc57-46e913a4d93b
+ </relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ <named-query-elements>
+ <named-query-element>
+ <relationship-list>
+ <relationship>
+ <related-to>model</related-to>
+ <relationship-data>
+ <!-- pserver -->
+ <relationship-key>model.model-invariant-id
+ </relationship-key>
+ <relationship-value>f2b24d95-c582-48d5-b2d6-c5b3a94ce812
+ </relationship-value>
+ </relationship-data>
+ </relationship>
+ </relationship-list>
+ </named-query-element>
+ </named-query-elements>
+ </named-query-element>
+ </named-query-elements>
+ </named-query-element>
+ </named-query-elements>
+ </named-query-element>
+ </named-query-elements>
+</named-query>
+
diff --git a/src/test/resources/models/vnf-model.json b/src/test/resources/models/vnf-model.json
deleted file mode 100644
index 5bebe59..0000000
--- a/src/test/resources/models/vnf-model.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "model":
- {
- "model-name-version-id":"model-vid",
- "model-type":"widget",
- "model-version":"v1.0",
- "model-id":"model-id",
- "model-name":"generic-vnf"
- }
-}
diff --git a/src/test/resources/models/wan-connector-model.xml b/src/test/resources/models/wan-connector-model.xml
deleted file mode 100644
index c8a434b..0000000
--- a/src/test/resources/models/wan-connector-model.xml
+++ /dev/null
@@ -1,185 +0,0 @@
-<!--
- ============LICENSE_START=======================================================
- MODEL LOADER SERVICE
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- ================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ============LICENSE_END=========================================================
- -->
-
-<model xmlns="http://org.openecomp.aai.inventory/v8">
- <model-id>e4a9901b-6c94-4e07-b8d8-b877d3df554c</model-id>
- <model-type>service</model-type>
- <model-name>test-model</model-name>
- <model-version>v1.0</model-version>
- <model-name-version-id>93d9d45d-7eec-4371-9083-675e4c353de3
- </model-name-version-id>
- <model-description>desc</model-description>
- <metadata>
- <metadatum>
- <metaname>a</metaname>
- <metaval>vpn-id</metaval>
- </metadatum>
- <metadatum>
- <metaname>b</metaname>
- <metaval>product</metaval>
- </metadatum>
- </metadata>
- <model-elements>
- <model-element>
- <new-data-del-flag>true</new-data-del-flag>
- <cardinality>unbounded</cardinality>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- connector -->
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>d09dd9da-0148-46cd-a947-591afc844d24
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <model-elements>
- <model-element>
- <new-data-del-flag>true</new-data-del-flag>
- <cardinality>unbounded</cardinality>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- vdc -->
- <relationship-key>model.model-name-version-id</relationship-key>
- <relationship-value>997fc7-fca1-451f-b953-9a1e6197b4d6
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <model-elements>
- <model-element>
- <new-data-del-flag>true</new-data-del-flag>
- <cardinality>unbounded</cardinality>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- l2-bridge-for-wan-connector -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>ae16244f-4d29-4801-a559-e25f2db2a4c3
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <model-constraint>
- <constrained-element-sets>
- <constrained-element-set>
- <path>logical-link</path>
- <constrained-element-set-uuid>999
- </constrained-element-set-uuid>
- <constraint-type>combination</constraint-type>
- <check-type>AND</check-type>
- <element-choice-sets>
- <element-choice-set>
- <element-choice-set-name>A</element-choice-set-name>
- <cardinality>1</cardinality>
- <model-elements>
- <model-element>
- <cardinality>unbounded</cardinality>
- <new-data-del-flag>false</new-data-del-flag>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- ipe -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>759dbd4a-2473-46f3-a932-48d987c9b4a1
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- <linkage-points>
- <linkage-point>l-interface|p-interface|pserver
- </linkage-point>
- </linkage-points>
- </model-element>
- </model-elements>
- </element-choice-set>
- <element-choice-set>
- <element-choice-set-name>B</element-choice-set-name>
- <cardinality>1</cardinality>
- <model-elements>
- <model-element>
- <cardinality>unbounded</cardinality>
- <new-data-del-flag>false</new-data-del-flag>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- vDbe -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>8da97b81-e0e9-4157-a4cd-af3ba52871d6
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model-element>
- <model-element>
- <cardinality>unbounded</cardinality>
- <new-data-del-flag>false</new-data-del-flag>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- vSbg -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>a6d9de88-4046-4b78-a59e-5691243d292a
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model-element>
- <model-element>
- <cardinality>unbounded</cardinality>
- <new-data-del-flag>false</new-data-del-flag>
- <relationship-list>
- <relationship>
- <related-to>model</related-to>
- <relationship-data>
- <!-- pBgf -->
- <relationship-key>model.model-name-version-id
- </relationship-key>
- <relationship-value>35be1acf-1298-48c6-a128-66850083b8bd
- </relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </model-element>
- </model-elements>
- </element-choice-set>
- </element-choice-sets>
- </constrained-element-set>
- </constrained-element-sets>
- </model-constraint>
- </model-element>
- </model-elements>
- </model-element>
- </model-elements>
- </model-element>
- </model-elements>
-</model>
-
diff --git a/src/test/resources/vnfcatalogexample.xml b/src/test/resources/vnfcatalogexample.xml
index c7ba530..0348f71 100644
--- a/src/test/resources/vnfcatalogexample.xml
+++ b/src/test/resources/vnfcatalogexample.xml
@@ -1,149 +1,149 @@
-<!--
+<!--
============LICENSE_START=======================================================
MODEL LOADER SERVICE
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
+ 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=========================================================
- -->
-
-<vnf-catalog>
- <part-number-list>
- <att-part-number>FortiGate-VM00</att-part-number>
- <vnf-type>FW</vnf-type>
- <vendor-info>
- <vendor-name>FORTINET</vendor-name>
- <vendor-part-number>FortiGate-VM00</vendor-part-number>
- <vendor-model>VM00</vendor-model>
- </vendor-info>
- <vcpu>
- <vcpu-default>1</vcpu-default>
- <vcpu-min>1</vcpu-min>
- <vcpu-max>1</vcpu-max>
- </vcpu>
- <vmemory>
- <vmemory-default>1</vmemory-default>
- <vmemory-units>GB</vmemory-units>
- <vmemory-min>1</vmemory-min>
- <vmemory-max>1</vmemory-max>
- </vmemory>
- <vdisk>
- <vdisk-default>2</vdisk-default>
- <vdisk-units>GB</vdisk-units>
- <vdisk-min>2</vdisk-min>
- <vdisk-max>32</vdisk-max>
- </vdisk>
- <software-version-list>
- <software-version>5.2.7</software-version>
- <software-version-state>0</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>1c59a521885c465004456f74d003726c</file-md5-value>
- <software-filename>test3</software-filename>
- </software-version-list>
- <software-version-list>
- <software-version>5.2.5</software-version>
- <software-version-state>1</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>C4D2CBE51669796E48623E006782F7DC</file-md5-value>
- <software-filename>test2</software-filename>
- </software-version-list>
- <software-version-list>
- <software-version>5.2.4</software-version>
- <software-version-state>2</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>4987E1E743FD641C879E1D3C5D50BCE0</file-md5-value>
- <software-filename>test1</software-filename>
- </software-version-list>
- <vnf-features-list>
- <vnf-feature>APPID</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>IPS-IDS</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>URLF</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>Anti-Virus</vnf-feature>
- </vnf-features-list>
- <license-list>
- <license-assignment-group>FortiGate-VM00</license-assignment-group>
- <license-required>FALSE</license-required>
- </license-list>
- </part-number-list>
- <part-number-list>
- <att-part-number>FortiGate-VM01</att-part-number>
- <vnf-type>FW</vnf-type>
- <vendor-info>
- <vendor-name>FORTINET</vendor-name>
- <vendor-part-number>FortiGate-VM01</vendor-part-number>
- <vendor-model>VM01</vendor-model>
- </vendor-info>
- <vcpu>
- <vcpu-default>1</vcpu-default>
- <vcpu-min>1</vcpu-min>
- <vcpu-max>1</vcpu-max>
- </vcpu>
- <vmemory>
- <vmemory-default>2</vmemory-default>
- <vmemory-units>GB</vmemory-units>
- <vmemory-min>1</vmemory-min>
- <vmemory-max>2</vmemory-max>
- </vmemory>
- <vdisk>
- <vdisk-default>2</vdisk-default>
- <vdisk-units>GB</vdisk-units>
- <vdisk-min>2</vdisk-min>
- <vdisk-max>32</vdisk-max>
- </vdisk>
- <software-version-list>
- <software-version>5.2.7</software-version>
- <software-version-state>0</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>1c59a521885c465004456f74d003726c</file-md5-value>
- <software-filename>software file name 3</software-filename>
- </software-version-list>
- <software-version-list>
- <software-version>5.2.5</software-version>
- <software-version-state>1</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>C4D2CBE51669796E48623E006782F7DC</file-md5-value>
- <software-filename>software file name 2</software-filename>
- </software-version-list>
- <software-version-list>
- <software-version>5.2.4</software-version>
- <software-version-state>2</software-version-state>
- <software-filetype>IMAGE</software-filetype>
- <file-md5-value>4987E1E743FD641C879E1D3C5D50BCE0</file-md5-value>
- <software-filename>software file name</software-filename>
- </software-version-list>
- <vnf-features-list>
- <vnf-feature>APPID</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>IPS-IDS</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>URLF</vnf-feature>
- </vnf-features-list>
- <vnf-features-list>
- <vnf-feature>Anti-Virus</vnf-feature>
- </vnf-features-list>
- <license-list>
- <license-assignment-group>license group</license-assignment-group>
- <license-required>FALSE</license-required>
- </license-list>
- </part-number-list>
-
-</vnf-catalog>
+ ============LICENSE_END=========================================================
+ -->
+
+<vnf-catalog>
+ <part-number-list>
+ <part-number>FortiGate-VM00</part-number>
+ <vnf-type>FW</vnf-type>
+ <vendor-info>
+ <vendor-name>FORTINET</vendor-name>
+ <vendor-part-number>FortiGate-VM00</vendor-part-number>
+ <vendor-model>VM00</vendor-model>
+ </vendor-info>
+ <vcpu>
+ <vcpu-default>1</vcpu-default>
+ <vcpu-min>1</vcpu-min>
+ <vcpu-max>1</vcpu-max>
+ </vcpu>
+ <vmemory>
+ <vmemory-default>1</vmemory-default>
+ <vmemory-units>GB</vmemory-units>
+ <vmemory-min>1</vmemory-min>
+ <vmemory-max>1</vmemory-max>
+ </vmemory>
+ <vdisk>
+ <vdisk-default>2</vdisk-default>
+ <vdisk-units>GB</vdisk-units>
+ <vdisk-min>2</vdisk-min>
+ <vdisk-max>32</vdisk-max>
+ </vdisk>
+ <software-version-list>
+ <software-version>5.2.7</software-version>
+ <software-version-state>0</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>1c59a521885c465004456f74d003726c</file-md5-value>
+ <software-filename>test3</software-filename>
+ </software-version-list>
+ <software-version-list>
+ <software-version>5.2.5</software-version>
+ <software-version-state>1</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>C4D2CBE51669796E48623E006782F7DC</file-md5-value>
+ <software-filename>test2</software-filename>
+ </software-version-list>
+ <software-version-list>
+ <software-version>5.2.4</software-version>
+ <software-version-state>2</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>4987E1E743FD641C879E1D3C5D50BCE0</file-md5-value>
+ <software-filename>test1</software-filename>
+ </software-version-list>
+ <vnf-features-list>
+ <vnf-feature>APPID</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>IPS-IDS</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>URLF</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>Anti-Virus</vnf-feature>
+ </vnf-features-list>
+ <license-list>
+ <license-assignment-group>FortiGate-VM00</license-assignment-group>
+ <license-required>FALSE</license-required>
+ </license-list>
+ </part-number-list>
+ <part-number-list>
+ <part-number>FortiGate-VM01</part-number>
+ <vnf-type>FW</vnf-type>
+ <vendor-info>
+ <vendor-name>FORTINET</vendor-name>
+ <vendor-part-number>FortiGate-VM01</vendor-part-number>
+ <vendor-model>VM01</vendor-model>
+ </vendor-info>
+ <vcpu>
+ <vcpu-default>1</vcpu-default>
+ <vcpu-min>1</vcpu-min>
+ <vcpu-max>1</vcpu-max>
+ </vcpu>
+ <vmemory>
+ <vmemory-default>2</vmemory-default>
+ <vmemory-units>GB</vmemory-units>
+ <vmemory-min>1</vmemory-min>
+ <vmemory-max>2</vmemory-max>
+ </vmemory>
+ <vdisk>
+ <vdisk-default>2</vdisk-default>
+ <vdisk-units>GB</vdisk-units>
+ <vdisk-min>2</vdisk-min>
+ <vdisk-max>32</vdisk-max>
+ </vdisk>
+ <software-version-list>
+ <software-version>5.2.7</software-version>
+ <software-version-state>0</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>1c59a521885c465004456f74d003726c</file-md5-value>
+ <software-filename>software file name 3</software-filename>
+ </software-version-list>
+ <software-version-list>
+ <software-version>5.2.5</software-version>
+ <software-version-state>1</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>C4D2CBE51669796E48623E006782F7DC</file-md5-value>
+ <software-filename>software file name 2</software-filename>
+ </software-version-list>
+ <software-version-list>
+ <software-version>5.2.4</software-version>
+ <software-version-state>2</software-version-state>
+ <software-filetype>IMAGE</software-filetype>
+ <file-md5-value>4987E1E743FD641C879E1D3C5D50BCE0</file-md5-value>
+ <software-filename>software file name</software-filename>
+ </software-version-list>
+ <vnf-features-list>
+ <vnf-feature>APPID</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>IPS-IDS</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>URLF</vnf-feature>
+ </vnf-features-list>
+ <vnf-features-list>
+ <vnf-feature>Anti-Virus</vnf-feature>
+ </vnf-features-list>
+ <license-list>
+ <license-assignment-group>license group</license-assignment-group>
+ <license-required>FALSE</license-required>
+ </license-list>
+ </part-number-list>
+
+</vnf-catalog>