2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.generator;
23 import org.openecomp.sdc.generator.aai.model.Widget;
24 import org.openecomp.sdc.generator.aai.tosca.ToscaTemplate;
25 import org.openecomp.sdc.generator.aai.xml.Model;
26 import org.openecomp.sdc.generator.data.*;
27 import org.openecomp.sdc.generator.impl.ArtifactGenerationServiceImpl;
29 import junit.framework.TestCase;
30 import org.junit.Assert;
31 import org.junit.Test;
36 import static org.openecomp.sdc.generator.ArtifactGenerationServiceTest.*;
37 import static org.openecomp.sdc.generator.data.GeneratorConstants.*;
39 public class SampleJUnitTest extends TestCase {
41 private static final String AAI_ARTIFACT_TYPE = ArtifactType.AAI.name();
42 private static final String AAI_ARTIFACT_GROUP_TYPE = GroupType.DEPLOYMENT.name();
43 private static final String GENERATOR_CONFIG = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
44 private static final String ARTIFACT_GENERATOR_CONFIG = "artifactgenerator.config";
45 private static final String CONFIG_PATH = "/qa-test-repo/jmeter3/apache-jmeter-3" +
47 private static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
48 "Cannot generate artifacts. Widget configuration not found for %s";
49 private static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
50 "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
51 private static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
52 "Cannot generate artifacts. artifactgenerator.config system property not configured";
53 private static final String INVALID_VALUE_INVARIANT =
54 "Invalid value for mandatory attribute <invariantUUID> in Artifact";
55 private static final String INVALID_VALUE_UUID =
56 "Invalid value for mandatory attribute <UUID> in Artifact:";
57 static final Map<String, String> additionalParams = new HashMap<>();
58 public static final String ARTIFACT_GENERATOR_PROPERTIES = "Artifact-Generator.properties";
59 public static final String VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML = "vf_vmme_template_NoSystemPropConfigured.yml";
60 public static final String SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML = "service_vmme_template_NoSystemPropConfigured.yml";
63 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
66 public SampleJUnitTest(String name) throws IOException {
68 System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
69 loadConfig(ArtifactGenerationServiceTest.properties);
72 private void loadConfig(Properties properties) throws IOException {
73 String configLocation = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
74 if (configLocation != null) {
75 File file = new File(configLocation);
78 try (InputStream fis = new FileInputStream(file)) {
85 public SampleJUnitTest() {
87 System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
91 public void testArtifactGenerationSingleVFSingleVFModule() {
93 List<Artifact> inputArtifacts = new ArrayList();
94 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
96 readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
97 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
98 List<ToscaTemplate> toscas = new LinkedList();
100 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
102 for (Artifact inputArtifact : inputArtifacts) {
103 toscas.add(getToscaModel(inputArtifact));
105 List<Artifact> resultData = data.getResultData();
107 Map<String, Model> outputArtifactMap = new HashMap<>();
108 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
109 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
111 testResourceTosca(toscas.iterator(), outputArtifactMap);
113 Assert.assertEquals(5, data.getResultData().size());
115 removeMockArtifact(data.getResultData().iterator());
117 ArtifactGenerationServiceTest.validateName(data.getResultData());
120 } catch (Exception e) {
121 Assert.fail(e.getMessage());
126 public void testArtifactGenerationMissingVFInServiceTOSCA() {
128 List<Artifact> inputArtifacts = new ArrayList();
129 readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFInServiceTOSCA.yml");
130 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
131 List<ToscaTemplate> toscas = new LinkedList();
133 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
135 for (Artifact inputArtifact : inputArtifacts) {
136 toscas.add(getToscaModel(inputArtifact));
138 List<Artifact> resultData = data.getResultData();
140 Map<String, Model> outputArtifactMap = new HashMap<>();
141 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
142 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
144 Assert.assertEquals(3, data.getResultData().size());
146 removeMockArtifact(data.getResultData().iterator());
148 ArtifactGenerationServiceTest.validateName(data.getResultData());
151 } catch (Exception e) {
152 Assert.fail(e.getMessage());
157 public void testArtifactGenerationVerifySameStaticWidgetsForAllServices() {
159 List<Artifact> inputArtifacts = new ArrayList();
160 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SameWidgets1.yml");
162 readPayloadFromResource(inputArtifacts, "service_vmme_template_SameWidget1.yml");
163 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
164 List<ToscaTemplate> toscas = new LinkedList();
166 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
168 for (Artifact inputArtifact : inputArtifacts) {
169 toscas.add(getToscaModel(inputArtifact));
171 List<Artifact> resultData = data.getResultData();
173 Map<String, Model> outputArtifactMap = new HashMap<>();
174 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
176 removeMockArtifact(data.getResultData().iterator());
179 List<Artifact> inputArtifacts2 = new ArrayList();
180 readPayloadFromResource(inputArtifacts2, "vf_vmme_template_SameWidgets2.yml");
182 readPayloadFromResource(inputArtifacts2, "service_vmme_template_SameWidget2.yml");
183 ArtifactGenerationServiceImpl obj2 = new ArtifactGenerationServiceImpl();
185 GenerationData data2 = obj2.generateArtifact(inputArtifacts2, GENERATOR_CONFIG,additionalParams);
186 List<Artifact> resultData2 = data2.getResultData();
188 List<ToscaTemplate> toscas2 = new LinkedList();
190 for (Artifact inputArtifact : inputArtifacts2) {
191 toscas2.add(getToscaModel(inputArtifact));
194 Map<String, Model> outputArtifactMap2 = new HashMap<>();
195 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2, resultData2);
196 removeMockArtifact(data2.getResultData().iterator());
198 Map<String,String> map = new HashMap<>();
199 Iterator<Artifact> itr = data.getResultData().iterator();
200 while(itr.hasNext()){
201 Artifact artifact=itr.next();
202 if(artifact.getLabel().contains("AAI-widget")){
203 map.put(artifact.getName(),artifact.getChecksum());
206 Map<String,String> map2 = new HashMap<>();
207 Iterator<Artifact> itr2 = data2.getResultData().iterator();
208 while(itr2.hasNext()){
209 Artifact artifact=itr2.next();
210 if(artifact.getLabel().contains("AAI-widget")){
211 map2.put(artifact.getName(),artifact.getChecksum());
214 Assert.assertEquals(map.size(),map2.size());
215 for(Map.Entry<String, String> entry : map.entrySet()){
216 Assert.assertEquals(entry.getValue(), map2.get(entry.getKey()));
219 } catch (Exception e) {
220 Assert.fail(e.getMessage());
225 public void testArtifactGenerationMulVFModule() {
227 List<Artifact> inputArtifacts = new ArrayList();
228 readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulVFVFMod.yml");
230 readPayloadFromResource(inputArtifacts, "service_vmme_template_MulVFVFMod.yml");
232 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
233 List<ToscaTemplate> toscas = new LinkedList();
235 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
237 for (Artifact inputArtifact : inputArtifacts) {
238 toscas.add(getToscaModel(inputArtifact));
240 List<Artifact> resultData = data.getResultData();
242 Map<String, Model> outputArtifactMap = new HashMap<>();
243 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
244 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
245 testResourceTosca(toscas.iterator(), outputArtifactMap);
247 Assert.assertEquals(3,data.getResultData().size());
249 removeMockArtifact(data.getResultData().iterator());
251 ArtifactGenerationServiceTest.validateName(data.getResultData());
253 } catch (Exception e) {
254 Assert.fail(e.getMessage());
259 public void testArtifactGenerationMulVFs() {
261 List<Artifact> inputArtifacts = new ArrayList();
263 readPayloadFromResource(inputArtifacts, "CMAUI_VF.yaml");
265 readPayloadFromResource(inputArtifacts, "ECA_OAM_VF.yaml");
267 readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16.yaml");
269 readPayloadFromResource(inputArtifacts, "MMSC_VF.yaml");
271 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
272 List<ToscaTemplate> toscas = new LinkedList();
274 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
276 for (Artifact inputArtifact : inputArtifacts) {
277 toscas.add(getToscaModel(inputArtifact));
279 List<Artifact> resultData = data.getResultData();
281 Map<String, Model> outputArtifactMap = new HashMap<>();
282 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
283 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
284 testResourceTosca(toscas.iterator(), outputArtifactMap);
286 Assert.assertEquals(8,data.getResultData().size());
288 removeMockArtifact(data.getResultData().iterator());
290 ArtifactGenerationServiceTest.validateName(data.getResultData());
292 } catch (Exception e) {
293 Assert.fail(e.getMessage());
298 public void testArtifactGenerationDupVFUUID() {
300 List<Artifact> inputArtifacts = new ArrayList();
301 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFUUID.yml");
303 readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFUUID.yml");
304 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
305 List<ToscaTemplate> toscas = new LinkedList();
307 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
309 for (Artifact inputArtifact : inputArtifacts) {
310 toscas.add(getToscaModel(inputArtifact));
312 List<Artifact> resultData = data.getResultData();
314 Map<String, Model> outputArtifactMap = new HashMap<>();
315 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
316 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
317 testResourceTosca(toscas.iterator(), outputArtifactMap);
319 Assert.assertEquals(5,data.getResultData().size());
321 removeMockArtifact(data.getResultData().iterator());
323 ArtifactGenerationServiceTest.validateName(data.getResultData());
325 } catch (Exception e) {
326 Assert.fail(e.getMessage());
331 public void testArtifactGenerationDupVFModUUID() {
333 List<Artifact> inputArtifacts = new ArrayList();
334 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFModUUID.yml");
336 readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFModUUID.yml");
337 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
338 List<ToscaTemplate> toscas = new LinkedList();
340 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
342 for (Artifact inputArtifact : inputArtifacts) {
343 toscas.add(getToscaModel(inputArtifact));
345 List<Artifact> resultData = data.getResultData();
347 Map<String, Model> outputArtifactMap = new HashMap<>();
348 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
349 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
350 testResourceTosca(toscas.iterator(), outputArtifactMap);
352 Assert.assertEquals(5,data.getResultData().size());
354 removeMockArtifact(data.getResultData().iterator());
356 ArtifactGenerationServiceTest.validateName(data.getResultData());
357 } catch (Exception e) {
358 Assert.fail(e.getMessage());
363 public void testArtifactGenerationVerifyVFModWithoutVNFC() {
365 List<Artifact> inputArtifacts = new ArrayList();
366 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
368 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
369 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
370 List<ToscaTemplate> toscas = new LinkedList();
372 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
374 for (Artifact inputArtifact : inputArtifacts) {
375 toscas.add(getToscaModel(inputArtifact));
377 List<Artifact> resultData = data.getResultData();
379 Map<String, Model> outputArtifactMap = new HashMap<>();
380 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
381 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
382 testResourceTosca(toscas.iterator(), outputArtifactMap);
384 Assert.assertEquals(5,data.getResultData().size());
386 removeMockArtifact(data.getResultData().iterator());
388 ArtifactGenerationServiceTest.validateName(data.getResultData());
389 } catch (Exception e) {
390 Assert.fail(e.getMessage());
395 public void testArtifactGenerationVerifyVFModWithInvalidMember() {
397 List<Artifact> inputArtifacts = new ArrayList();
398 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
400 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
401 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
402 List<ToscaTemplate> toscas = new LinkedList();
404 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
406 for (Artifact inputArtifact : inputArtifacts) {
407 toscas.add(getToscaModel(inputArtifact));
409 List<Artifact> resultData = data.getResultData();
411 Map<String, Model> outputArtifactMap = new HashMap<>();
412 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
413 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
414 testResourceTosca(toscas.iterator(), outputArtifactMap);
416 Assert.assertEquals(5,data.getResultData().size());
418 removeMockArtifact(data.getResultData().iterator());
420 ArtifactGenerationServiceTest.validateName(data.getResultData());
421 } catch (Exception e) {
422 Assert.fail(e.getMessage());
427 public void testArtifactGenerationNullFields() {
429 List<Artifact> inputArtifacts = new ArrayList();
430 readPayloadFromResource(inputArtifacts, "vf_vmme_template_NullFields.yml");
432 readPayloadFromResource(inputArtifacts, "service_vmme_template_NullFields.yml");
433 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
435 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
436 Assert.assertEquals(false,data.getErrorData().isEmpty());
438 Assert.assertEquals("Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <"+inputArtifacts.get(0).getName()+">",data.getErrorData().get("AAI").get(0));
440 Assert.assertEquals(2,data.getResultData().size());
442 } catch (Exception e) {
443 Assert.fail(e.getMessage());
448 public void testArtifactGenerationInCorrectYmlFormat() {
450 List<Artifact> inputArtifacts = new ArrayList();
452 readPayloadFromResource(inputArtifacts, "CMAUI_VFInvalidFormat.yaml");
454 readPayloadFromResource(inputArtifacts, "ECA_OAM_VFInvalidFormat.yaml");
456 readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16InvalidFormat.yaml");
458 readPayloadFromResource(inputArtifacts, "MMSC_VFInvalidFormat.yaml");
460 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
462 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
463 Assert.assertEquals(false,data.getErrorData().isEmpty());
465 Assert.assertEquals("Invalid format for Tosca YML : "+inputArtifacts.get(1).getName(),data.getErrorData().get("AAI").get(0));
467 Assert.assertEquals(2,data.getResultData().size());
469 } catch (Exception e) {
470 Assert.fail(e.getMessage());
475 public void testArtifactGenerationMulComp() {
477 List<Artifact> inputArtifacts = new ArrayList();
478 readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulComp.yml");
480 readPayloadFromResource(inputArtifacts, "service_vmme_template_MulComp.yml");
481 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
482 List<ToscaTemplate> toscas = new LinkedList();
484 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
486 for (Artifact inputArtifact : inputArtifacts) {
487 toscas.add(getToscaModel(inputArtifact));
489 List<Artifact> resultData = data.getResultData();
491 Map<String, Model> outputArtifactMap = new HashMap<>();
492 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
493 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
494 testResourceTosca(toscas.iterator(), outputArtifactMap);
496 Assert.assertEquals(5,data.getResultData().size());
498 removeMockArtifact(data.getResultData().iterator());
500 ArtifactGenerationServiceTest.validateName(data.getResultData());
501 } catch (Exception e) {
502 Assert.fail(e.getMessage());
507 public void testArtifactGenerationOrphan() {
509 List<Artifact> inputArtifacts = new ArrayList();
511 readPayloadFromResource(inputArtifacts, "vf_vmme_template_Orphan.yml");
513 readPayloadFromResource(inputArtifacts, "service_vmme_template_Orphan.yml");
515 readPayloadFromResource(inputArtifacts, "ECA_OAM_VFOrphan.yaml");
517 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
518 List<ToscaTemplate> toscas = new LinkedList();
520 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
522 for (Artifact inputArtifact : inputArtifacts) {
523 toscas.add(getToscaModel(inputArtifact));
525 List<Artifact> resultData = data.getResultData();
527 Map<String, Model> outputArtifactMap = new HashMap<>();
528 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
529 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
530 testResourceTosca(toscas.iterator(), outputArtifactMap);
532 Assert.assertEquals(5,data.getResultData().size());
534 removeMockArtifact(data.getResultData().iterator());
536 ArtifactGenerationServiceTest.validateName(data.getResultData());
537 } catch (Exception e) {
538 Assert.fail(e.getMessage());
543 public void testArtifactGenerationMissingVFTemplate() {
545 List<Artifact> inputArtifacts = new ArrayList();
547 readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFTemplate.yml");
549 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
550 List<ToscaTemplate> toscas = new LinkedList();
552 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
554 for (Artifact inputArtifact : inputArtifacts) {
555 toscas.add(getToscaModel(inputArtifact));
557 List<Artifact> resultData = data.getResultData();
559 Map<String, Model> outputArtifactMap = new HashMap<>();
560 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
561 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
564 Assert.assertEquals(3,data.getResultData().size());
566 removeMockArtifact(data.getResultData().iterator());
568 ArtifactGenerationServiceTest.validateName(data.getResultData());
569 } catch (Exception e) {
570 Assert.fail(e.getMessage());
575 public void testArtifactGenerationMissingVFModule() {
577 List<Artifact> inputArtifacts = new ArrayList();
579 readPayloadFromResource(inputArtifacts, "CMAUI_VFMissingVFModule.yaml");
581 readPayloadFromResource(inputArtifacts, "ECA_OAM_VFMissingVFModule.yaml");
583 readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16MissingVFModule.yaml");
585 readPayloadFromResource(inputArtifacts, "MMSC_VFMissingVFModule.yaml");
587 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
588 List<ToscaTemplate> toscas = new LinkedList();
590 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
592 for (Artifact inputArtifact : inputArtifacts) {
593 toscas.add(getToscaModel(inputArtifact));
595 List<Artifact> resultData = data.getResultData();
597 Map<String, Model> outputArtifactMap = new HashMap<>();
598 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
599 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
600 testResourceTosca(toscas.iterator(), outputArtifactMap);
602 Assert.assertEquals(8,data.getResultData().size());
604 removeMockArtifact(data.getResultData().iterator());
606 ArtifactGenerationServiceTest.validateName(data.getResultData());
608 } catch (Exception e) {
609 Assert.fail(e.getMessage());
614 public void testArtifactGenerationEmptyArtifact() {
616 List<Artifact> inputArtifacts = new ArrayList();
618 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
620 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
621 Assert.assertEquals(false,data.getErrorData().isEmpty());
622 Assert.assertEquals("Service tosca missing from list of input artifacts",data.getErrorData().get("AAI").get(0));
624 Assert.assertEquals(2,data.getResultData().size());
626 } catch (Exception e) {
627 Assert.fail(e.getMessage());
632 public void testArtifactGenerationMissingConfigFile() {
634 List<Artifact> inputArtifacts = new ArrayList();
636 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
638 readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
639 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
641 GenerationData data = obj.generateArtifact(inputArtifacts, "",additionalParams);
642 Assert.assertEquals(false,data.getErrorData().isEmpty());
643 Assert.assertEquals("Invalid Client Configuration",data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0));
645 Assert.assertEquals(0,data.getResultData().size());
647 } catch (Exception e) {
648 Assert.fail(e.getMessage());
654 public void testArtifactGenerationWithNodeTemplates() {
656 List<Artifact> inputArtifacts = new ArrayList();
658 readPayloadFromResource(inputArtifacts, "ServiceWithNodetemplate.yml");
660 readPayloadFromResource(inputArtifacts, "Resource0-template.yml");
662 readPayloadFromResource(inputArtifacts, "Resource1-template.yml");
664 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
665 List<ToscaTemplate> toscas = new LinkedList();
667 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
669 for (Artifact inputArtifact : inputArtifacts) {
670 toscas.add(getToscaModel(inputArtifact));
672 List<Artifact> resultData = data.getResultData();
674 Map<String, Model> outputArtifactMap = new HashMap<>();
675 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
676 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
677 testResourceTosca(toscas.iterator(), outputArtifactMap);
679 Assert.assertEquals(5,data.getResultData().size());
681 removeMockArtifact(data.getResultData().iterator());
683 ArtifactGenerationServiceTest.validateName(data.getResultData());
686 } catch (Exception e) {
687 Assert.fail(e.getMessage());
692 public void testArtifactGenerationWithoutNodeTemplates() {
694 List<Artifact> inputArtifacts = new ArrayList();
696 readPayloadFromResource(inputArtifacts, "Service0-template.yml");
698 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
699 List<ToscaTemplate> toscas = new LinkedList();
701 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
703 for (Artifact inputArtifact : inputArtifacts) {
704 toscas.add(getToscaModel(inputArtifact));
706 List<Artifact> resultData = data.getResultData();
708 Map<String, Model> outputArtifactMap = new HashMap<>();
709 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
710 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
713 Assert.assertEquals(3,data.getResultData().size());
715 removeMockArtifact(data.getResultData().iterator());
717 ArtifactGenerationServiceTest.validateName(data.getResultData());
720 } catch (Exception e) {
721 Assert.fail(e.getMessage());
726 public void testArtifactGenerationWithArtifactNameAndDescMoreThan256() {
728 List<Artifact> inputArtifacts = new ArrayList();
730 readPayloadFromResource(inputArtifacts, "Service0-templateMoreThan256.yml");
732 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
733 List<ToscaTemplate> toscas = new LinkedList();
735 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
737 for (Artifact inputArtifact : inputArtifacts) {
738 toscas.add(getToscaModel(inputArtifact));
740 List<Artifact> resultData = data.getResultData();
742 Map<String, Model> outputArtifactMap = new HashMap<>();
743 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
744 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
747 Assert.assertEquals(3,data.getResultData().size());
749 removeMockArtifact(data.getResultData().iterator());
751 for(Artifact artifact : data.getResultData()){
752 checkArtifactName(artifact.getName());
753 checkArtifactLabel(artifact.getLabel());
754 checkArtifactDescription(artifact.getDescription());
758 } catch (Exception e) {
759 Assert.fail(e.getMessage());
764 public void testArtifactGenerationWithDifferentVersionOfSameVF() {
766 List<Artifact> inputArtifacts = new ArrayList();
768 readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVF.yml");
770 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_1.yml");
772 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_2.yml");
774 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
775 List<ToscaTemplate> toscas = new LinkedList();
777 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
779 for (Artifact inputArtifact : inputArtifacts) {
780 toscas.add(getToscaModel(inputArtifact));
782 List<Artifact> resultData = data.getResultData();
784 Map<String, Model> outputArtifactMap = new HashMap<>();
785 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
786 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
787 testResourceTosca(toscas.iterator(), outputArtifactMap);
789 Assert.assertEquals(6,data.getResultData().size());
791 removeMockArtifact(data.getResultData().iterator());
793 ArtifactGenerationServiceTest.validateName(data.getResultData());
796 } catch (Exception e) {
797 Assert.fail(e.getMessage());
802 public void testArtifactGenerationWithDifferentVersionOfSameVFModWithSameInvId() {
804 List<Artifact> inputArtifacts = new ArrayList();
806 readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
808 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
810 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
811 List<ToscaTemplate> toscas = new LinkedList();
813 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
815 for (Artifact inputArtifact : inputArtifacts) {
816 toscas.add(getToscaModel(inputArtifact));
818 List<Artifact> resultData = data.getResultData();
820 Map<String, Model> outputArtifactMap = new HashMap<>();
821 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
822 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
823 testResourceTosca(toscas.iterator(), outputArtifactMap);
825 Assert.assertEquals(6,data.getResultData().size());
827 removeMockArtifact(data.getResultData().iterator());
829 ArtifactGenerationServiceTest.validateName(data.getResultData());
832 } catch (Exception e) {
833 Assert.fail(e.getMessage());
838 public void testArtifactGenerationWithServiceContainingL3Network() {
840 List<Artifact> inputArtifacts = new ArrayList();
842 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3Network.yml");
844 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3Network.yml");
846 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3Network.yml");
848 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithL3Network.yml");
850 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
851 List<ToscaTemplate> toscas = new LinkedList();
853 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
855 for (Artifact inputArtifact : inputArtifacts) {
856 toscas.add(getToscaModel(inputArtifact));
858 List<Artifact> resultData = data.getResultData();
860 Map<String, Model> outputArtifactMap = new HashMap<>();
861 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
862 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
863 testResourceTosca(toscas.iterator(), outputArtifactMap);
865 Assert.assertEquals(7,data.getResultData().size());
867 removeMockArtifact(data.getResultData().iterator());
869 ArtifactGenerationServiceTest.validateName(data.getResultData());
872 } catch (Exception e) {
873 Assert.fail(e.getMessage());
878 public void testArtifactGenerationWithServiceContainingDupL3Network() {
880 List<Artifact> inputArtifacts = new ArrayList();
882 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDupL3Network.yml");
884 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDupL3Network.yml");
886 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDupL3Network.yml");
888 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDupL3Network.yml");
890 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
891 List<ToscaTemplate> toscas = new LinkedList();
893 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
895 for (Artifact inputArtifact : inputArtifacts) {
896 toscas.add(getToscaModel(inputArtifact));
898 List<Artifact> resultData = data.getResultData();
900 Map<String, Model> outputArtifactMap = new HashMap<>();
901 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
902 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
903 testResourceTosca(toscas.iterator(), outputArtifactMap);
905 Assert.assertEquals(7,data.getResultData().size());
907 removeMockArtifact(data.getResultData().iterator());
909 ArtifactGenerationServiceTest.validateName(data.getResultData());
912 } catch (Exception e) {
913 Assert.fail(e.getMessage());
918 public void testArtifactGenerationWithL3NetworkInVFMod() {
920 List<Artifact> inputArtifacts = new ArrayList();
922 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3NetworkInVFMod.yml");
924 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3NetworkInVFMod.yml");
926 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
928 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
929 List<ToscaTemplate> toscas = new LinkedList();
931 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
933 for (Artifact inputArtifact : inputArtifacts) {
934 toscas.add(getToscaModel(inputArtifact));
936 List<Artifact> resultData = data.getResultData();
938 Map<String, Model> outputArtifactMap = new HashMap<>();
939 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
940 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
941 testResourceTosca(toscas.iterator(), outputArtifactMap);
943 Assert.assertEquals(6,data.getResultData().size());
945 removeMockArtifact(data.getResultData().iterator());
947 ArtifactGenerationServiceTest.validateName(data.getResultData());
950 } catch (Exception e) {
951 Assert.fail(e.getMessage());
956 public void testArtifactGenerationWithDiffVersionOfSameL3Network() {
958 List<Artifact> inputArtifacts = new ArrayList();
960 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
962 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
964 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
966 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
968 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
970 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
971 List<ToscaTemplate> toscas = new LinkedList();
973 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
975 for (Artifact inputArtifact : inputArtifacts) {
976 toscas.add(getToscaModel(inputArtifact));
978 List<Artifact> resultData = data.getResultData();
980 Map<String, Model> outputArtifactMap = new HashMap<>();
981 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
982 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
983 testResourceTosca(toscas.iterator(), outputArtifactMap);
985 Assert.assertEquals(8,data.getResultData().size());
987 removeMockArtifact(data.getResultData().iterator());
989 ArtifactGenerationServiceTest.validateName(data.getResultData());
992 } catch (Exception e) {
993 Assert.fail(e.getMessage());
998 public void testArtifactGenerationWithInvIdGreaterThanSpecifiedLimit() {
1000 List<Artifact> inputArtifacts = new ArrayList();
1001 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
1003 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
1004 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1006 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1007 Assert.assertEquals(false,data.getErrorData().isEmpty());
1009 Assert.assertEquals(INVALID_VALUE_INVARIANT + ": <" +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
1011 Assert.assertEquals(2,data.getResultData().size());
1013 } catch (Exception e) {
1014 Assert.fail(e.getMessage());
1019 public void testArtifactGenerationWithInvIdLesserThanSpecifiedLimit() {
1021 List<Artifact> inputArtifacts = new ArrayList();
1022 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
1024 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
1025 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1027 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1028 Assert.assertEquals(false,data.getErrorData().isEmpty());
1030 Assert.assertEquals(INVALID_VALUE_UUID + " <"
1031 +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
1033 Assert.assertEquals(2,data.getResultData().size());
1035 } catch (Exception e) {
1036 Assert.fail(e.getMessage());
1042 public void testErrorWhenNoSystemPropConfigured() {
1043 String configLoc = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
1045 List<Artifact> inputArtifacts = new ArrayList();
1046 readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1048 readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1050 System.clearProperty(ARTIFACT_GENERATOR_CONFIG);
1052 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1053 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1054 Assert.assertEquals(false,data.getErrorData().isEmpty());
1055 Assert.assertEquals(data.getErrorData().
1056 get("AAI").get(0), GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
1057 } catch (Exception e) {
1058 Assert.fail(e.getMessage());
1061 System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc);
1066 public void testErrorWhenNoFileAtConfigLocation() {
1067 String configLoc = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
1069 List<Artifact> inputArtifacts = new ArrayList();
1070 readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1072 readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1074 System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
1075 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1076 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1077 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1078 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
1079 GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
1080 (ARTIFACT_GENERATOR_CONFIG)));
1081 } catch (Exception e) {
1082 Assert.fail(e.getMessage());
1085 System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc);
1090 public void testErrorWhenNoWidgetInConfig() throws IOException {
1091 System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator1.properties");
1092 loadConfig(ArtifactGenerationServiceTest.properties);
1094 List<Artifact> inputArtifacts = new ArrayList();
1095 readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1097 readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
1099 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1100 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1102 String assertMsg = ArtifactType.AAI.name() + ".model-version-id." + Widget.getWidget
1103 (Widget.Type.SERVICE).getName();
1105 Assert.assertEquals(false,data.getErrorData().isEmpty());
1106 String errMsg = String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
1107 Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
1108 } catch (Exception e) {
1109 Assert.fail(e.getMessage());
1111 System.setProperty(ARTIFACT_GENERATOR_CONFIG, CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
1112 loadConfig(ArtifactGenerationServiceTest.properties);
1117 public void testArtifactGenerationWithUpdatedUUIDInConfig() throws IOException {
1119 List<Artifact> inputArtifacts = new ArrayList();
1120 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithUpdatedUUIDInConfig.yml");
1122 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
1124 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1125 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1126 List<ToscaTemplate> toscas = new LinkedList();
1127 for (Artifact inputArtifact : inputArtifacts) {
1128 toscas.add(getToscaModel(inputArtifact));
1130 List<Artifact> resultData = data.getResultData();
1131 Map<String, Model> outputArtifactMap = new HashMap<>();
1132 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1133 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1134 testResourceTosca(toscas.iterator(), outputArtifactMap);
1136 System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator2.properties");
1137 loadConfig(ArtifactGenerationServiceTest.properties);
1139 List<ToscaTemplate> toscas2 = new LinkedList();
1140 for (Artifact inputArtifact : inputArtifacts) {
1141 toscas2.add(getToscaModel(inputArtifact));
1143 GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1144 Map<String, Model> outputArtifactMap2 = new HashMap<>();
1145 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2,
1146 data2.getResultData());
1147 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap2, toscas2);
1148 testResourceTosca(toscas2.iterator(), outputArtifactMap2);
1150 } catch (Exception e) {
1151 Assert.fail(e.getMessage());
1153 System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
1154 loadConfig(ArtifactGenerationServiceTest.properties);
1159 public void testArtifactGenerationVerifyMandatoryParameterServiceVersion() {
1161 List<Artifact> inputArtifacts = new ArrayList();
1162 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
1164 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
1165 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1167 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, new HashMap<String, String>());
1169 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1170 Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
1171 } catch (Exception e) {
1172 Assert.fail(e.getMessage());
1177 public void testArtifactGenerationVerifyServiceVersionFormat() {
1179 List<Artifact> inputArtifacts = new ArrayList();
1180 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersionFormat.yml");
1182 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersionFormat.yml");
1183 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1185 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
1186 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1187 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1188 Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_INVALID_SERVICE_VERSION);
1190 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
1191 GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
1193 Assert.assertEquals(data2.getErrorData().isEmpty(),false);
1194 Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
1195 GENERATOR_AAI_INVALID_SERVICE_VERSION);
1197 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
1198 GenerationData data3 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
1200 Assert.assertEquals(data3.getErrorData().isEmpty(),false);
1201 Assert.assertEquals(data3.getErrorData().get("AAI").get(0),
1202 GENERATOR_AAI_INVALID_SERVICE_VERSION);
1203 } catch (Exception e) {
1204 Assert.fail(e.getMessage());
1206 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
1211 public void testArtifactGenerationVerifyServiceVersion() {
1213 List<Artifact> inputArtifacts = new ArrayList();
1214 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersion.yml");
1216 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersion.yml");
1217 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1218 List<ToscaTemplate> toscas = new LinkedList();
1220 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
1221 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1223 for (Artifact inputArtifact : inputArtifacts) {
1224 toscas.add(getToscaModel(inputArtifact));
1226 List<Artifact> resultData = data.getResultData();
1228 Map<String, Model> outputArtifactMap = new HashMap<>();
1229 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1230 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1232 testResourceTosca(toscas.iterator(), outputArtifactMap);
1234 Assert.assertEquals(5, data.getResultData().size());
1236 removeMockArtifact(data.getResultData().iterator());
1238 ArtifactGenerationServiceTest.validateName(data.getResultData());
1241 } catch (Exception e) {
1242 Assert.fail(e.getMessage());
1244 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
1250 public void testArtifactGenerationVerifyResourceVersionFormat() {
1252 List<Artifact> inputArtifacts = new ArrayList();
1253 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyResourceVersionFormat.yml");
1255 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat1.yml");
1256 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1258 List<ToscaTemplate> toscas = new LinkedList();
1259 for (Artifact inputArtifact : inputArtifacts) {
1260 toscas.add(getToscaModel(inputArtifact));
1263 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1264 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1265 Assert.assertEquals(data.getErrorData().get("AAI").get(0),
1266 String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
1267 toscas.get(0).getMetadata().get("UUID")));
1269 inputArtifacts.remove(1);
1271 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat2.yml");
1272 GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
1274 Assert.assertEquals(data2.getErrorData().isEmpty(),false);
1275 Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
1276 String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
1277 toscas.get(0).getMetadata().get("UUID")));
1279 } catch (Exception e) {
1280 Assert.fail(e.getMessage());
1285 public void testArtifactGenerationVerifyMandatoryParameterResourceVersion() {
1287 List<Artifact> inputArtifacts = new ArrayList();
1288 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
1290 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
1291 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1292 List<ToscaTemplate> toscas = new LinkedList();
1293 for (Artifact inputArtifact : inputArtifacts) {
1294 toscas.add(getToscaModel(inputArtifact));
1297 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1298 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1299 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA,toscas.get(0).getMetadata().get("UUID")));
1300 } catch (Exception e) {
1301 Assert.fail(e.getMessage());
1306 public void testArtifactGenerationWithoutAllottedResource() {
1308 List<Artifact> inputArtifacts = new ArrayList();
1310 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template.yml");
1312 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux.yml");
1314 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1315 List<ToscaTemplate> toscas = new LinkedList();
1317 for (Artifact inputArtifact : inputArtifacts) {
1318 toscas.add(getToscaModel(inputArtifact));
1320 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1322 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1323 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
1324 (GENERATOR_AAI_PROVIDING_SERVICE_MISSING, toscas.get(1).getModelId()));
1326 } catch (Exception e) {
1327 Assert.fail(e.getMessage());
1332 public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
1334 List<Artifact> inputArtifacts = new ArrayList();
1336 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
1338 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux_WithGroups.yml");
1340 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1341 List<ToscaTemplate> toscas = new LinkedList();
1343 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1345 for (Artifact inputArtifact : inputArtifacts) {
1346 toscas.add(getToscaModel(inputArtifact));
1348 List<Artifact> resultData = data.getResultData();
1350 Map<String, Model> outputArtifactMap = new HashMap<>();
1351 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1352 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1353 testResourceTosca(toscas.iterator(), outputArtifactMap);
1355 Assert.assertEquals(5, data.getResultData().size());
1357 removeMockArtifact(data.getResultData().iterator());
1359 ArtifactGenerationServiceTest.validateName(data.getResultData());
1361 } catch (Exception e) {
1362 Assert.fail(e.getMessage());
1367 public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
1369 List<Artifact> inputArtifacts = new ArrayList();
1371 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
1373 readPayloadFromResource(inputArtifacts, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
1375 readPayloadFromResource(inputArtifacts, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
1377 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1378 List<ToscaTemplate> toscas = new LinkedList();
1380 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1382 for (Artifact inputArtifact : inputArtifacts) {
1383 toscas.add(getToscaModel(inputArtifact));
1385 List<Artifact> resultData = data.getResultData();
1387 Map<String, Model> outputArtifactMap = new HashMap<>();
1388 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1389 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1390 testResourceTosca(toscas.iterator(), outputArtifactMap);
1392 Assert.assertEquals(5, data.getResultData().size());
1394 removeMockArtifact(data.getResultData().iterator());
1396 ArtifactGenerationServiceTest.validateName(data.getResultData());
1399 } catch (Exception e) {
1400 Assert.fail(e.getMessage());
1405 public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
1407 List<Artifact> inputArtifacts = new ArrayList();
1409 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
1411 readPayloadFromResource(inputArtifacts, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
1413 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1414 List<ToscaTemplate> toscas = new LinkedList();
1416 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1418 for (Artifact inputArtifact : inputArtifacts) {
1419 toscas.add(getToscaModel(inputArtifact));
1421 List<Artifact> resultData = data.getResultData();
1423 Map<String, Model> outputArtifactMap = new HashMap<>();
1424 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1425 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1426 testResourceTosca(toscas.iterator(), outputArtifactMap);
1428 Assert.assertEquals(4, data.getResultData().size());
1430 removeMockArtifact(data.getResultData().iterator());
1432 ArtifactGenerationServiceTest.validateName(data.getResultData());
1435 } catch (Exception e) {
1436 Assert.fail(e.getMessage());
1441 public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
1443 List<Artifact> inputArtifacts = new ArrayList();
1445 readPayloadFromResource(inputArtifacts, "service-Allottedipmux-template.yml");
1447 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template.yml");
1449 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template.yml");
1451 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1452 List<ToscaTemplate> toscas = new LinkedList();
1454 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1456 for (Artifact inputArtifact : inputArtifacts) {
1457 toscas.add(getToscaModel(inputArtifact));
1459 List<Artifact> resultData = data.getResultData();
1461 Map<String, Model> outputArtifactMap = new HashMap<>();
1462 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1463 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1464 testResourceTosca(toscas.iterator(), outputArtifactMap);
1466 Assert.assertEquals(5, data.getResultData().size());
1468 removeMockArtifact(data.getResultData().iterator());
1470 ArtifactGenerationServiceTest.validateName(data.getResultData());
1472 } catch (Exception e) {
1473 Assert.fail(e.getMessage());
1478 public void testArtifactGenerationAllottedResourceWithOutProvidingServiceId() {
1480 List<Artifact> inputArtifacts = new ArrayList();
1482 readPayloadFromResource(inputArtifacts, "service-SdWan-template_WithOutDepSerId.yml");
1484 readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
1486 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_WithOutDepSerId.yml");
1488 readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
1490 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
1492 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1493 List<ToscaTemplate> toscas = new LinkedList();
1494 for (Artifact inputArtifact : inputArtifacts) {
1495 toscas.add(getToscaModel(inputArtifact));
1498 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1499 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1500 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
1501 (GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, toscas.get(2).getModelId()));
1502 } catch (Exception e) {
1503 Assert.fail(e.getMessage());
1508 public void testArtifactGenerationAllottedResourceWithVF() {
1510 List<Artifact> inputArtifacts = new ArrayList();
1512 readPayloadFromResource(inputArtifacts, "service-SdWan-template_AllRes_VF.yml");
1514 readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_AllRes_VF.yml");
1516 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_AllRes_VF.yml");
1518 readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_AllRes_VF.yml");
1520 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_AllRes_VF.yml");
1522 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1523 List<ToscaTemplate> toscas = new LinkedList();
1525 GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
1526 for (Artifact inputArtifact : inputArtifacts) {
1527 toscas.add(getToscaModel(inputArtifact));
1529 List<Artifact> resultData = data.getResultData();
1531 Map<String, Model> outputArtifactMap = new HashMap<>();
1532 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1533 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1534 testResourceTosca(toscas.iterator(), outputArtifactMap);
1536 Assert.assertEquals(7, data.getResultData().size());
1538 removeMockArtifact(data.getResultData().iterator());
1540 ArtifactGenerationServiceTest.validateName(data.getResultData());
1541 } catch (Exception e) {
1542 Assert.fail(e.getMessage());
1546 public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName) throws IOException {
1547 byte[] payload = new byte[fis.available()];
1549 String checksum = GeneratorUtil.checkSum(payload);
1550 byte[] encodedPayload = GeneratorUtil.encode(payload);
1551 Artifact artifact = new Artifact(AAI_ARTIFACT_TYPE, AAI_ARTIFACT_GROUP_TYPE, checksum, encodedPayload);
1552 artifact.setName(fileName);
1553 artifact.setLabel(fileName);
1554 artifact.setDescription(fileName);
1555 inputArtifacts.add(artifact);
1560 * Get the tosca java model from the tosca input artifact
1562 * @param input Input tosca file and its metadata information as {@link Artifact} object
1563 * @return Translated {@link ToscaTemplate tosca} object
1564 * @throws SecurityException
1566 public static ToscaTemplate getToscaModel(Artifact input) {
1567 byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
1568 String checksum = GeneratorUtil.checkSum(decodedInput);
1569 if (checksum.equals(input.getChecksum())) {
1571 return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
1572 } catch (Exception e) {
1573 throw new IllegalArgumentException(String.format(GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
1576 throw new SecurityException(String.format(GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
1580 public static void removeMockArtifact(Iterator<Artifact> itr) {
1581 while (itr.hasNext()){
1582 if(itr.next().getType().equals("OTHER")){
1588 private void readPayloadFromResource(List<Artifact> inputArtifacts, String fileName) throws IOException {
1590 try (InputStream fis = SampleJUnitTest.class.getResourceAsStream("/" + fileName)) {
1591 readPayload(inputArtifacts, fis, fileName);