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 public static final String aaiArtifactType = ArtifactType.AAI.name();
42 public static final String aaiArtifactGroupType = GroupType.DEPLOYMENT.name();
43 public static final String generatorConfig = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
44 public static final String ARTIFACTGENERATOR_CONFIG = "artifactgenerator.config";
45 public static final String CONFIG_PATH = "/qa-test-repo/jmeter3/apache-jmeter-3" +
47 //public static final String CONFIG_PATH ="C:\\Jmeter-Copy\\jmeter3\\apache-jmeter-3" +
49 public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
50 "Cannot generate artifacts. Widget configuration not found for %s";
51 public static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
52 "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
53 public static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
54 "Cannot generate artifacts. artifactgenerator.config system property not configured";
55 public static final String INVALID_VALUE_INVARIANT =
56 "Invalid value for mandatory attribute <invariantUUID> in Artifact";
57 public static final String INVALID_VALUE_UUID =
58 "Invalid value for mandatory attribute <UUID> in Artifact:";
59 public static final Map<String, String> additionalParams = new HashMap<>();
62 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
65 private void loadConfig(Properties properties) throws IOException {
66 String configLocation = System.getProperty(ARTIFACTGENERATOR_CONFIG);
67 if (configLocation != null) {
68 File file = new File(configLocation);
71 try (InputStream fis = new FileInputStream(file)) {
77 public SampleJUnitTest(String name) throws Exception {
79 System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
80 loadConfig(ArtifactGenerationServiceTest.properties);
83 public SampleJUnitTest() {
85 System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
89 public void testArtifactGenerationSingleVFSingleVFModule() {
91 List<Artifact> inputArtifacts = new ArrayList();
92 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
94 readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
95 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
96 List<ToscaTemplate> toscas = new LinkedList();
98 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
100 for (Artifact inputArtifact : inputArtifacts) {
101 toscas.add(getToscaModel(inputArtifact));
103 List<Artifact> resultData = data.getResultData();
105 Map<String, Model> outputArtifactMap = new HashMap<>();
106 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
107 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
109 testResourceTosca(toscas.iterator(), outputArtifactMap);
111 Assert.assertEquals(5, data.getResultData().size());
113 removeMockArtifact(data.getResultData().iterator());
115 ArtifactGenerationServiceTest.validateName(data.getResultData());
118 } catch (Exception e) {
119 Assert.fail(e.getMessage());
124 public void testArtifactGenerationMissingVFInServiceTOSCA() {
126 List<Artifact> inputArtifacts = new ArrayList();
127 readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFInServiceTOSCA.yml");
128 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
129 List<ToscaTemplate> toscas = new LinkedList();
131 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
133 for (Artifact inputArtifact : inputArtifacts) {
134 toscas.add(getToscaModel(inputArtifact));
136 List<Artifact> resultData = data.getResultData();
138 Map<String, Model> outputArtifactMap = new HashMap<>();
139 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
140 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
142 Assert.assertEquals(3, data.getResultData().size());
144 removeMockArtifact(data.getResultData().iterator());
146 ArtifactGenerationServiceTest.validateName(data.getResultData());
149 } catch (Exception e) {
150 Assert.fail(e.getMessage());
155 public void testArtifactGenerationVerifySameStaticWidgetsForAllServices() {
157 List<Artifact> inputArtifacts = new ArrayList();
158 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SameWidgets1.yml");
160 readPayloadFromResource(inputArtifacts, "service_vmme_template_SameWidget1.yml");
161 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
162 List<ToscaTemplate> toscas = new LinkedList();
164 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
166 for (Artifact inputArtifact : inputArtifacts) {
167 toscas.add(getToscaModel(inputArtifact));
169 List<Artifact> resultData = data.getResultData();
171 Map<String, Model> outputArtifactMap = new HashMap<>();
172 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
174 removeMockArtifact(data.getResultData().iterator());
177 List<Artifact> inputArtifacts2 = new ArrayList();
178 readPayloadFromResource(inputArtifacts2, "vf_vmme_template_SameWidgets2.yml");
180 readPayloadFromResource(inputArtifacts2, "service_vmme_template_SameWidget2.yml");
181 ArtifactGenerationServiceImpl obj2 = new ArtifactGenerationServiceImpl();
183 GenerationData data2 = obj2.generateArtifact(inputArtifacts2, generatorConfig,additionalParams);
184 List<Artifact> resultData2 = data2.getResultData();
186 List<ToscaTemplate> toscas2 = new LinkedList();
188 for (Artifact inputArtifact : inputArtifacts2) {
189 toscas2.add(getToscaModel(inputArtifact));
192 Map<String, Model> outputArtifactMap2 = new HashMap<>();
193 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2, resultData2);
194 removeMockArtifact(data2.getResultData().iterator());
196 Map<String,String> map = new HashMap<>();
197 Iterator<Artifact> itr = data.getResultData().iterator();
198 while(itr.hasNext()){
199 Artifact artifact=itr.next();
200 if(artifact.getLabel().contains("AAI-widget")){
201 map.put(artifact.getName(),artifact.getChecksum());
204 Map<String,String> map2 = new HashMap<>();
205 Iterator<Artifact> itr2 = data2.getResultData().iterator();
206 while(itr2.hasNext()){
207 Artifact artifact=itr2.next();
208 if(artifact.getLabel().contains("AAI-widget")){
209 map2.put(artifact.getName(),artifact.getChecksum());
212 Assert.assertEquals(map.size(),map2.size());
213 for(String name : map.keySet()){
214 Assert.assertEquals(map.get(name),map2.get(name));
217 } catch (Exception e) {
218 Assert.fail(e.getMessage());
223 public void testArtifactGenerationMulVFModule() {
225 List<Artifact> inputArtifacts = new ArrayList();
226 String[] resourceFileList = {};
227 readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulVFVFMod.yml");
229 readPayloadFromResource(inputArtifacts, "service_vmme_template_MulVFVFMod.yml");
231 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
232 List<ToscaTemplate> toscas = new LinkedList();
234 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
236 for (Artifact inputArtifact : inputArtifacts) {
237 toscas.add(getToscaModel(inputArtifact));
239 List<Artifact> resultData = data.getResultData();
241 Map<String, Model> outputArtifactMap = new HashMap<>();
242 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
243 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
244 testResourceTosca(toscas.iterator(), outputArtifactMap);
246 Assert.assertEquals(3,data.getResultData().size());
248 removeMockArtifact(data.getResultData().iterator());
250 ArtifactGenerationServiceTest.validateName(data.getResultData());
252 } catch (Exception e) {
253 Assert.fail(e.getMessage());
258 public void testArtifactGenerationMulVFs() {
260 List<Artifact> inputArtifacts = new ArrayList();
262 readPayloadFromResource(inputArtifacts, "CMAUI_VF.yaml");
264 readPayloadFromResource(inputArtifacts, "ECA_OAM_VF.yaml");
266 readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16.yaml");
268 readPayloadFromResource(inputArtifacts, "MMSC_VF.yaml");
270 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
271 List<ToscaTemplate> toscas = new LinkedList();
273 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
275 for (Artifact inputArtifact : inputArtifacts) {
276 toscas.add(getToscaModel(inputArtifact));
278 List<Artifact> resultData = data.getResultData();
280 Map<String, Model> outputArtifactMap = new HashMap<>();
281 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
282 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
283 testResourceTosca(toscas.iterator(), outputArtifactMap);
285 Assert.assertEquals(8,data.getResultData().size());
287 removeMockArtifact(data.getResultData().iterator());
289 ArtifactGenerationServiceTest.validateName(data.getResultData());
291 } catch (Exception e) {
292 Assert.fail(e.getMessage());
297 public void testArtifactGenerationDupVFUUID() {
299 List<Artifact> inputArtifacts = new ArrayList();
300 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFUUID.yml");
302 readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFUUID.yml");
303 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
304 List<ToscaTemplate> toscas = new LinkedList();
306 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
308 for (Artifact inputArtifact : inputArtifacts) {
309 toscas.add(getToscaModel(inputArtifact));
311 List<Artifact> resultData = data.getResultData();
313 Map<String, Model> outputArtifactMap = new HashMap<>();
314 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
315 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
316 testResourceTosca(toscas.iterator(), outputArtifactMap);
318 Assert.assertEquals(5,data.getResultData().size());
320 removeMockArtifact(data.getResultData().iterator());
322 ArtifactGenerationServiceTest.validateName(data.getResultData());
324 } catch (Exception e) {
325 Assert.fail(e.getMessage());
330 public void testArtifactGenerationDupVFModUUID() {
332 List<Artifact> inputArtifacts = new ArrayList();
333 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFModUUID.yml");
335 readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFModUUID.yml");
336 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
337 List<ToscaTemplate> toscas = new LinkedList();
339 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
341 for (Artifact inputArtifact : inputArtifacts) {
342 toscas.add(getToscaModel(inputArtifact));
344 List<Artifact> resultData = data.getResultData();
346 Map<String, Model> outputArtifactMap = new HashMap<>();
347 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
348 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
349 testResourceTosca(toscas.iterator(), outputArtifactMap);
351 Assert.assertEquals(5,data.getResultData().size());
353 removeMockArtifact(data.getResultData().iterator());
355 ArtifactGenerationServiceTest.validateName(data.getResultData());
356 } catch (Exception e) {
357 Assert.fail(e.getMessage());
362 public void testArtifactGenerationVerifyVFModWithoutVNFC() {
364 List<Artifact> inputArtifacts = new ArrayList();
365 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
367 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
368 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
369 List<ToscaTemplate> toscas = new LinkedList();
371 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
373 for (Artifact inputArtifact : inputArtifacts) {
374 toscas.add(getToscaModel(inputArtifact));
376 List<Artifact> resultData = data.getResultData();
378 Map<String, Model> outputArtifactMap = new HashMap<>();
379 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
380 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
381 testResourceTosca(toscas.iterator(), outputArtifactMap);
383 Assert.assertEquals(5,data.getResultData().size());
385 removeMockArtifact(data.getResultData().iterator());
387 ArtifactGenerationServiceTest.validateName(data.getResultData());
388 } catch (Exception e) {
389 Assert.fail(e.getMessage());
394 public void testArtifactGenerationVerifyVFModWithInvalidMember() {
396 List<Artifact> inputArtifacts = new ArrayList();
397 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
399 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
400 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
401 List<ToscaTemplate> toscas = new LinkedList();
403 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
405 for (Artifact inputArtifact : inputArtifacts) {
406 toscas.add(getToscaModel(inputArtifact));
408 List<Artifact> resultData = data.getResultData();
410 Map<String, Model> outputArtifactMap = new HashMap<>();
411 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
412 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
413 testResourceTosca(toscas.iterator(), outputArtifactMap);
415 Assert.assertEquals(5,data.getResultData().size());
417 removeMockArtifact(data.getResultData().iterator());
419 ArtifactGenerationServiceTest.validateName(data.getResultData());
420 } catch (Exception e) {
421 Assert.fail(e.getMessage());
426 public void testArtifactGenerationNullFields() {
428 List<Artifact> inputArtifacts = new ArrayList();
429 readPayloadFromResource(inputArtifacts, "vf_vmme_template_NullFields.yml");
431 readPayloadFromResource(inputArtifacts, "service_vmme_template_NullFields.yml");
432 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
434 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
435 Assert.assertEquals(false,data.getErrorData().isEmpty());
437 Assert.assertEquals("Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <"+inputArtifacts.get(0).getName()+">",data.getErrorData().get("AAI").get(0));
439 Assert.assertEquals(2,data.getResultData().size());
441 } 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, generatorConfig, 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, generatorConfig, 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, generatorConfig, 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, generatorConfig, 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, generatorConfig, 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) {
610 Assert.fail(e.getMessage());
615 public void testArtifactGenerationEmptyArtifact() {
617 List<Artifact> inputArtifacts = new ArrayList();
619 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
621 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
622 Assert.assertEquals(false,data.getErrorData().isEmpty());
623 Assert.assertEquals("Service tosca missing from list of input artifacts",data.getErrorData().get("AAI").get(0));
625 Assert.assertEquals(2,data.getResultData().size());
627 } catch (Exception e) {
628 Assert.fail(e.getMessage());
633 public void testArtifactGenerationMissingConfigFile() {
635 List<Artifact> inputArtifacts = new ArrayList();
637 readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
639 readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
640 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
642 GenerationData data = obj.generateArtifact(inputArtifacts, "",additionalParams);
643 Assert.assertEquals(false,data.getErrorData().isEmpty());
644 Assert.assertEquals("Invalid Client Configuration",data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0));
646 Assert.assertEquals(0,data.getResultData().size());
648 } catch (Exception e) {
649 Assert.fail(e.getMessage());
655 public void testArtifactGenerationWithNodeTemplates() {
657 List<Artifact> inputArtifacts = new ArrayList();
659 readPayloadFromResource(inputArtifacts, "ServiceWithNodetemplate.yml");
661 readPayloadFromResource(inputArtifacts, "Resource0-template.yml");
663 readPayloadFromResource(inputArtifacts, "Resource1-template.yml");
665 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
666 List<ToscaTemplate> toscas = new LinkedList();
668 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
670 for (Artifact inputArtifact : inputArtifacts) {
671 toscas.add(getToscaModel(inputArtifact));
673 List<Artifact> resultData = data.getResultData();
675 Map<String, Model> outputArtifactMap = new HashMap<>();
676 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
677 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
678 testResourceTosca(toscas.iterator(), outputArtifactMap);
680 Assert.assertEquals(5,data.getResultData().size());
682 removeMockArtifact(data.getResultData().iterator());
684 ArtifactGenerationServiceTest.validateName(data.getResultData());
687 } catch (Exception e) {
688 Assert.fail(e.getMessage());
693 public void testArtifactGenerationWithoutNodeTemplates() {
695 List<Artifact> inputArtifacts = new ArrayList();
697 readPayloadFromResource(inputArtifacts, "Service0-template.yml");
699 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
700 List<ToscaTemplate> toscas = new LinkedList();
702 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
704 for (Artifact inputArtifact : inputArtifacts) {
705 toscas.add(getToscaModel(inputArtifact));
707 List<Artifact> resultData = data.getResultData();
709 Map<String, Model> outputArtifactMap = new HashMap<>();
710 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
711 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
714 Assert.assertEquals(3,data.getResultData().size());
716 removeMockArtifact(data.getResultData().iterator());
718 ArtifactGenerationServiceTest.validateName(data.getResultData());
721 } catch (Exception e) {
722 Assert.fail(e.getMessage());
727 public void testArtifactGenerationWithArtifactNameAndDescMoreThan256() {
729 List<Artifact> inputArtifacts = new ArrayList();
731 readPayloadFromResource(inputArtifacts, "Service0-templateMoreThan256.yml");
733 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
734 List<ToscaTemplate> toscas = new LinkedList();
736 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
738 for (Artifact inputArtifact : inputArtifacts) {
739 toscas.add(getToscaModel(inputArtifact));
741 List<Artifact> resultData = data.getResultData();
743 Map<String, Model> outputArtifactMap = new HashMap<>();
744 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
745 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
748 Assert.assertEquals(3,data.getResultData().size());
750 removeMockArtifact(data.getResultData().iterator());
752 for(Artifact artifact : data.getResultData()){
753 checkArtifactName(artifact.getName());
754 checkArtifactLabel(artifact.getLabel());
755 checkArtifactDescription(artifact.getDescription());
759 } catch (Exception e) {
760 Assert.fail(e.getMessage());
765 public void testArtifactGenerationWithDifferentVersionOfSameVF() {
767 List<Artifact> inputArtifacts = new ArrayList();
769 readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVF.yml");
771 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_1.yml");
773 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_2.yml");
775 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
776 List<ToscaTemplate> toscas = new LinkedList();
778 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
780 for (Artifact inputArtifact : inputArtifacts) {
781 toscas.add(getToscaModel(inputArtifact));
783 List<Artifact> resultData = data.getResultData();
785 Map<String, Model> outputArtifactMap = new HashMap<>();
786 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
787 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
788 testResourceTosca(toscas.iterator(), outputArtifactMap);
790 Assert.assertEquals(6,data.getResultData().size());
792 removeMockArtifact(data.getResultData().iterator());
794 ArtifactGenerationServiceTest.validateName(data.getResultData());
797 } catch (Exception e) {
798 Assert.fail(e.getMessage());
803 public void testArtifactGenerationWithDifferentVersionOfSameVFModWithSameInvId() {
805 List<Artifact> inputArtifacts = new ArrayList();
807 readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
809 readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
811 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
812 List<ToscaTemplate> toscas = new LinkedList();
814 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
816 for (Artifact inputArtifact : inputArtifacts) {
817 toscas.add(getToscaModel(inputArtifact));
819 List<Artifact> resultData = data.getResultData();
821 Map<String, Model> outputArtifactMap = new HashMap<>();
822 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
823 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
824 testResourceTosca(toscas.iterator(), outputArtifactMap);
826 Assert.assertEquals(6,data.getResultData().size());
828 removeMockArtifact(data.getResultData().iterator());
830 ArtifactGenerationServiceTest.validateName(data.getResultData());
833 } catch (Exception e) {
834 Assert.fail(e.getMessage());
839 public void testArtifactGenerationWithServiceContainingL3Network() {
841 List<Artifact> inputArtifacts = new ArrayList();
843 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3Network.yml");
845 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3Network.yml");
847 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3Network.yml");
849 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithL3Network.yml");
851 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
852 List<ToscaTemplate> toscas = new LinkedList();
854 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
856 for (Artifact inputArtifact : inputArtifacts) {
857 toscas.add(getToscaModel(inputArtifact));
859 List<Artifact> resultData = data.getResultData();
861 Map<String, Model> outputArtifactMap = new HashMap<>();
862 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
863 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
864 testResourceTosca(toscas.iterator(), outputArtifactMap);
866 Assert.assertEquals(7,data.getResultData().size());
868 removeMockArtifact(data.getResultData().iterator());
870 ArtifactGenerationServiceTest.validateName(data.getResultData());
873 } catch (Exception e) {
874 Assert.fail(e.getMessage());
879 public void testArtifactGenerationWithServiceContainingDupL3Network() {
881 List<Artifact> inputArtifacts = new ArrayList();
883 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDupL3Network.yml");
885 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDupL3Network.yml");
887 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDupL3Network.yml");
889 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDupL3Network.yml");
891 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
892 List<ToscaTemplate> toscas = new LinkedList();
894 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
896 for (Artifact inputArtifact : inputArtifacts) {
897 toscas.add(getToscaModel(inputArtifact));
899 List<Artifact> resultData = data.getResultData();
901 Map<String, Model> outputArtifactMap = new HashMap<>();
902 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
903 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
904 testResourceTosca(toscas.iterator(), outputArtifactMap);
906 Assert.assertEquals(7,data.getResultData().size());
908 removeMockArtifact(data.getResultData().iterator());
910 ArtifactGenerationServiceTest.validateName(data.getResultData());
913 } catch (Exception e) {
914 Assert.fail(e.getMessage());
919 public void testArtifactGenerationWithL3NetworkInVFMod() {
921 List<Artifact> inputArtifacts = new ArrayList();
923 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3NetworkInVFMod.yml");
925 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3NetworkInVFMod.yml");
927 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
929 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
930 List<ToscaTemplate> toscas = new LinkedList();
932 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
934 for (Artifact inputArtifact : inputArtifacts) {
935 toscas.add(getToscaModel(inputArtifact));
937 List<Artifact> resultData = data.getResultData();
939 Map<String, Model> outputArtifactMap = new HashMap<>();
940 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
941 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
942 testResourceTosca(toscas.iterator(), outputArtifactMap);
944 Assert.assertEquals(6,data.getResultData().size());
946 removeMockArtifact(data.getResultData().iterator());
948 ArtifactGenerationServiceTest.validateName(data.getResultData());
951 } catch (Exception e) {
952 Assert.fail(e.getMessage());
957 public void testArtifactGenerationWithDiffVersionOfSameL3Network() {
959 List<Artifact> inputArtifacts = new ArrayList();
961 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
963 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
965 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
967 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
969 readPayloadFromResource(inputArtifacts, "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
971 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
972 List<ToscaTemplate> toscas = new LinkedList();
974 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
976 for (Artifact inputArtifact : inputArtifacts) {
977 toscas.add(getToscaModel(inputArtifact));
979 List<Artifact> resultData = data.getResultData();
981 Map<String, Model> outputArtifactMap = new HashMap<>();
982 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
983 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
984 testResourceTosca(toscas.iterator(), outputArtifactMap);
986 Assert.assertEquals(8,data.getResultData().size());
988 removeMockArtifact(data.getResultData().iterator());
990 ArtifactGenerationServiceTest.validateName(data.getResultData());
993 } catch (Exception e) {
994 Assert.fail(e.getMessage());
999 public void testArtifactGenerationWithInvIdGreaterThanSpecifiedLimit() {
1001 List<Artifact> inputArtifacts = new ArrayList();
1002 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
1004 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
1005 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1007 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1008 Assert.assertEquals(false,data.getErrorData().isEmpty());
1010 Assert.assertEquals(INVALID_VALUE_INVARIANT + ": <" +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
1012 Assert.assertEquals(2,data.getResultData().size());
1014 } catch (Exception e) {
1015 e.printStackTrace();
1016 Assert.fail(e.getMessage());
1021 public void testArtifactGenerationWithInvIdLesserThanSpecifiedLimit() {
1023 List<Artifact> inputArtifacts = new ArrayList();
1024 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
1026 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
1027 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1029 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1030 Assert.assertEquals(false,data.getErrorData().isEmpty());
1032 Assert.assertEquals(INVALID_VALUE_UUID + " <"
1033 +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
1035 Assert.assertEquals(2,data.getResultData().size());
1037 } catch (Exception e) {
1038 e.printStackTrace();
1039 Assert.fail(e.getMessage());
1045 public void testErrorWhenNoSystemPropConfigured() throws Exception {
1046 String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
1048 List<Artifact> inputArtifacts = new ArrayList();
1049 readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
1051 readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
1053 System.clearProperty(ARTIFACTGENERATOR_CONFIG);
1055 Map<String, Model> outputArtifactMap = new HashMap<>();
1056 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1057 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1058 Assert.assertEquals(false,data.getErrorData().isEmpty());
1059 Assert.assertEquals(data.getErrorData().
1060 get("AAI").get(0), GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
1061 } catch (Exception e) {
1062 Assert.fail(e.getMessage());
1065 System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc);
1070 public void testErrorWhenNoFileAtConfigLocation() throws Exception {
1071 String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
1073 List<Artifact> inputArtifacts = new ArrayList();
1074 readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
1076 readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
1078 System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
1079 Map<String, Model> outputArtifactMap = new HashMap<>();
1080 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1081 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1082 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1083 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
1084 GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
1085 (ARTIFACTGENERATOR_CONFIG)));
1086 } catch (Exception e) {
1087 Assert.fail(e.getMessage());
1090 System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc);
1095 public void testErrorWhenNoWidgetInConfig() throws Exception {
1096 System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator1.properties");
1097 loadConfig(ArtifactGenerationServiceTest.properties);
1099 List<Artifact> inputArtifacts = new ArrayList();
1100 readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
1102 readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
1104 Map<String, Model> outputArtifactMap = new HashMap<>();
1105 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1106 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1108 String assertMsg = ArtifactType.AAI.name() + ".model-version-id." + Widget.getWidget
1109 (Widget.Type.SERVICE).getName();
1111 Assert.assertEquals(false,data.getErrorData().isEmpty());
1112 String errMsg = String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
1113 Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
1114 } catch (Exception e) {
1115 Assert.fail(e.getMessage());
1117 System.setProperty(ARTIFACTGENERATOR_CONFIG, CONFIG_PATH+"Artifact-Generator.properties");
1118 loadConfig(ArtifactGenerationServiceTest.properties);
1123 public void testArtifactGenerationWithUpdatedUUIDInConfig() throws Exception {
1125 List<Artifact> inputArtifacts = new ArrayList();
1126 readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithUpdatedUUIDInConfig.yml");
1128 readPayloadFromResource(inputArtifacts, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
1130 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1131 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1132 List<ToscaTemplate> toscas = new LinkedList();
1133 for (Artifact inputArtifact : inputArtifacts) {
1134 toscas.add(getToscaModel(inputArtifact));
1136 List<Artifact> resultData = data.getResultData();
1137 Map<String, Model> outputArtifactMap = new HashMap<>();
1138 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1139 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1140 testResourceTosca(toscas.iterator(), outputArtifactMap);
1142 System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator2.properties");
1143 loadConfig(ArtifactGenerationServiceTest.properties);
1145 List<ToscaTemplate> toscas2 = new LinkedList();
1146 for (Artifact inputArtifact : inputArtifacts) {
1147 toscas2.add(getToscaModel(inputArtifact));
1149 GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1150 Map<String, Model> outputArtifactMap2 = new HashMap<>();
1151 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2,
1152 data2.getResultData());
1153 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap2, toscas2);
1154 testResourceTosca(toscas2.iterator(), outputArtifactMap2);
1156 } catch (Exception e) {
1157 Assert.fail(e.getMessage());
1159 System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
1160 loadConfig(ArtifactGenerationServiceTest.properties);
1165 public void testArtifactGenerationVerifyMandatoryParameterServiceVersion() {
1167 List<Artifact> inputArtifacts = new ArrayList();
1168 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
1170 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
1171 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1173 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, new HashMap<String, String>());
1174 List<Artifact> resultData = data.getResultData();
1176 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1177 Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
1178 } catch (Exception e) {
1179 Assert.fail(e.getMessage());
1184 public void testArtifactGenerationVerifyServiceVersionFormat() {
1186 List<Artifact> inputArtifacts = new ArrayList();
1187 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersionFormat.yml");
1189 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersionFormat.yml");
1190 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1192 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
1193 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1194 List<Artifact> resultData = data.getResultData();
1195 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1196 Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_INVALID_SERVICE_VERSION);
1198 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
1199 GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig,
1201 List<Artifact> resultData2 = data.getResultData();
1202 Assert.assertEquals(data2.getErrorData().isEmpty(),false);
1203 Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
1204 GENERATOR_AAI_INVALID_SERVICE_VERSION);
1206 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
1207 GenerationData data3 = obj.generateArtifact(inputArtifacts, generatorConfig,
1209 List<Artifact> resultData3 = data.getResultData();
1210 Assert.assertEquals(data3.getErrorData().isEmpty(),false);
1211 Assert.assertEquals(data3.getErrorData().get("AAI").get(0),
1212 GENERATOR_AAI_INVALID_SERVICE_VERSION);
1213 } catch (Exception e) {
1214 Assert.fail(e.getMessage());
1216 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
1221 public void testArtifactGenerationVerifyServiceVersion() {
1223 List<Artifact> inputArtifacts = new ArrayList();
1224 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersion.yml");
1226 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersion.yml");
1227 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1228 List<ToscaTemplate> toscas = new LinkedList();
1230 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
1231 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1233 for (Artifact inputArtifact : inputArtifacts) {
1234 toscas.add(getToscaModel(inputArtifact));
1236 List<Artifact> resultData = data.getResultData();
1238 Map<String, Model> outputArtifactMap = new HashMap<>();
1239 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1240 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1242 testResourceTosca(toscas.iterator(), outputArtifactMap);
1244 Assert.assertEquals(5, data.getResultData().size());
1246 removeMockArtifact(data.getResultData().iterator());
1248 ArtifactGenerationServiceTest.validateName(data.getResultData());
1251 } catch (Exception e) {
1252 Assert.fail(e.getMessage());
1254 additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
1260 public void testArtifactGenerationVerifyResourceVersionFormat() {
1262 List<Artifact> inputArtifacts = new ArrayList();
1263 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyResourceVersionFormat.yml");
1265 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat1.yml");
1266 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1268 List<ToscaTemplate> toscas = new LinkedList();
1269 for (Artifact inputArtifact : inputArtifacts) {
1270 toscas.add(getToscaModel(inputArtifact));
1273 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1274 List<Artifact> resultData = data.getResultData();
1275 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1276 Assert.assertEquals(data.getErrorData().get("AAI").get(0),
1277 String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
1278 toscas.get(0).getMetadata().get("UUID")));
1280 inputArtifacts.remove(1);
1282 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat2.yml");
1283 GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig,
1285 List<Artifact> resultData2 = data2.getResultData();
1286 Assert.assertEquals(data2.getErrorData().isEmpty(),false);
1287 Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
1288 String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
1289 toscas.get(0).getMetadata().get("UUID")));
1291 } catch (Exception e) {
1292 Assert.fail(e.getMessage());
1297 public void testArtifactGenerationVerifyMandatoryParameterResourceVersion() {
1299 List<Artifact> inputArtifacts = new ArrayList();
1300 readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
1302 readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
1303 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1304 List<ToscaTemplate> toscas = new LinkedList();
1305 for (Artifact inputArtifact : inputArtifacts) {
1306 toscas.add(getToscaModel(inputArtifact));
1309 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1310 List<Artifact> resultData = data.getResultData();
1311 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1312 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")));
1313 } catch (Exception e) {
1314 Assert.fail(e.getMessage());
1319 public void testArtifactGenerationWithoutAllottedResource() {
1321 List<Artifact> inputArtifacts = new ArrayList();
1323 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template.yml");
1325 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux.yml");
1327 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1328 List<ToscaTemplate> toscas = new LinkedList();
1330 for (Artifact inputArtifact : inputArtifacts) {
1331 toscas.add(getToscaModel(inputArtifact));
1333 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1335 List<Artifact> resultData = data.getResultData();
1336 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1337 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
1338 (GENERATOR_AAI_PROVIDING_SERVICE_MISSING, toscas.get(1).getModelId()));
1340 } catch (Exception e) {
1341 Assert.fail(e.getMessage());
1346 public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
1348 List<Artifact> inputArtifacts = new ArrayList();
1350 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
1352 readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux_WithGroups.yml");
1354 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1355 List<ToscaTemplate> toscas = new LinkedList();
1357 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1359 for (Artifact inputArtifact : inputArtifacts) {
1360 toscas.add(getToscaModel(inputArtifact));
1362 List<Artifact> resultData = data.getResultData();
1364 Map<String, Model> outputArtifactMap = new HashMap<>();
1365 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1366 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1367 testResourceTosca(toscas.iterator(), outputArtifactMap);
1369 Assert.assertEquals(5, data.getResultData().size());
1371 removeMockArtifact(data.getResultData().iterator());
1373 ArtifactGenerationServiceTest.validateName(data.getResultData());
1375 } catch (Exception e) {
1376 Assert.fail(e.getMessage());
1381 public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
1383 List<Artifact> inputArtifacts = new ArrayList();
1385 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
1387 readPayloadFromResource(inputArtifacts, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
1389 readPayloadFromResource(inputArtifacts, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
1391 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1392 List<ToscaTemplate> toscas = new LinkedList();
1394 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1396 for (Artifact inputArtifact : inputArtifacts) {
1397 toscas.add(getToscaModel(inputArtifact));
1399 List<Artifact> resultData = data.getResultData();
1401 Map<String, Model> outputArtifactMap = new HashMap<>();
1402 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1403 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1404 testResourceTosca(toscas.iterator(), outputArtifactMap);
1406 Assert.assertEquals(5, data.getResultData().size());
1408 removeMockArtifact(data.getResultData().iterator());
1410 ArtifactGenerationServiceTest.validateName(data.getResultData());
1413 } catch (Exception e) {
1414 Assert.fail(e.getMessage());
1419 public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
1421 List<Artifact> inputArtifacts = new ArrayList();
1423 readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
1425 readPayloadFromResource(inputArtifacts, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
1427 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1428 List<ToscaTemplate> toscas = new LinkedList();
1430 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1432 for (Artifact inputArtifact : inputArtifacts) {
1433 toscas.add(getToscaModel(inputArtifact));
1435 List<Artifact> resultData = data.getResultData();
1437 Map<String, Model> outputArtifactMap = new HashMap<>();
1438 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1439 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1440 testResourceTosca(toscas.iterator(), outputArtifactMap);
1442 Assert.assertEquals(4, data.getResultData().size());
1444 removeMockArtifact(data.getResultData().iterator());
1446 ArtifactGenerationServiceTest.validateName(data.getResultData());
1449 } catch (Exception e) {
1450 Assert.fail(e.getMessage());
1455 public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
1457 List<Artifact> inputArtifacts = new ArrayList();
1459 readPayloadFromResource(inputArtifacts, "service-Allottedipmux-template.yml");
1461 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template.yml");
1463 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template.yml");
1465 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1466 List<ToscaTemplate> toscas = new LinkedList();
1468 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1470 for (Artifact inputArtifact : inputArtifacts) {
1471 toscas.add(getToscaModel(inputArtifact));
1473 List<Artifact> resultData = data.getResultData();
1475 Map<String, Model> outputArtifactMap = new HashMap<>();
1476 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1477 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1478 testResourceTosca(toscas.iterator(), outputArtifactMap);
1480 Assert.assertEquals(5, data.getResultData().size());
1482 removeMockArtifact(data.getResultData().iterator());
1484 ArtifactGenerationServiceTest.validateName(data.getResultData());
1486 } catch (Exception e) {
1487 Assert.fail(e.getMessage());
1492 public void testArtifactGenerationAllottedResourceWithOutProvidingServiceId() {
1494 List<Artifact> inputArtifacts = new ArrayList();
1496 readPayloadFromResource(inputArtifacts, "service-SdWan-template_WithOutDepSerId.yml");
1498 readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
1500 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_WithOutDepSerId.yml");
1502 readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
1504 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
1506 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1507 List<ToscaTemplate> toscas = new LinkedList();
1508 for (Artifact inputArtifact : inputArtifacts) {
1509 toscas.add(getToscaModel(inputArtifact));
1512 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1513 List<Artifact> resultData = data.getResultData();
1514 Assert.assertEquals(data.getErrorData().isEmpty(),false);
1515 Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
1516 (GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, toscas.get(2).getModelId()));
1517 } catch (Exception e) {
1518 Assert.fail(e.getMessage());
1523 public void testArtifactGenerationAllottedResourceWithVF() {
1525 List<Artifact> inputArtifacts = new ArrayList();
1527 readPayloadFromResource(inputArtifacts, "service-SdWan-template_AllRes_VF.yml");
1529 readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_AllRes_VF.yml");
1531 readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_AllRes_VF.yml");
1533 readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_AllRes_VF.yml");
1535 readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_AllRes_VF.yml");
1537 ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
1538 List<ToscaTemplate> toscas = new LinkedList();
1540 GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
1541 for (Artifact inputArtifact : inputArtifacts) {
1542 toscas.add(getToscaModel(inputArtifact));
1544 List<Artifact> resultData = data.getResultData();
1546 Map<String, Model> outputArtifactMap = new HashMap<>();
1547 ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
1548 ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
1549 testResourceTosca(toscas.iterator(), outputArtifactMap);
1551 Assert.assertEquals(7, data.getResultData().size());
1553 removeMockArtifact(data.getResultData().iterator());
1555 ArtifactGenerationServiceTest.validateName(data.getResultData());
1556 } catch (Exception e) {
1557 Assert.fail(e.getMessage());
1561 public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName) throws IOException {
1562 byte[] payload = new byte[fis.available()];
1564 String checksum = GeneratorUtil.checkSum(payload);
1565 byte[] encodedPayload = GeneratorUtil.encode(payload);
1566 Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
1567 artifact.setName(fileName);
1568 artifact.setLabel(fileName);
1569 artifact.setDescription(fileName);
1570 //artifact.setVersion("1.0");
1571 System.out.println(artifact.getName());
1572 inputArtifacts.add(artifact);
1577 * Get the tosca java model from the tosca input artifact
1579 * @param input Input tosca file and its metadata information as {@link Artifact} object
1580 * @return Translated {@link ToscaTemplate tosca} object
1581 * @throws SecurityException
1583 public static ToscaTemplate getToscaModel(Artifact input) throws SecurityException {
1584 byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
1585 String checksum = GeneratorUtil.checkSum(decodedInput);
1586 if (checksum.equals(input.getChecksum())) {
1588 return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
1589 } catch (Exception e) {
1590 e.printStackTrace();
1591 throw new IllegalArgumentException(String.format(GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
1594 throw new SecurityException(String.format(GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
1598 public static void removeMockArtifact(Iterator<Artifact> itr) {
1599 while (itr.hasNext()){
1600 if(itr.next().getType().equals("OTHER")){
1606 /*public static void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model> outputArtifactMap) {
1607 while(itr.hasNext()){
1608 ToscaTemplate toscaTemplate = itr.next();
1609 if("VF".equals(toscaTemplate.getMetadata().get("type"))){
1610 ArtifactGenerationServiceTest.testResourceTosca(outputArtifactMap, toscaTemplate);
1615 private void readPayloadFromResource(List<Artifact> inputArtifacts, String fileName) throws IOException {
1617 try (InputStream fis = SampleJUnitTest.class.getResourceAsStream("/" + fileName)) {
1618 readPayload(inputArtifacts, fis, fileName);