1 package org.openecomp.sdc.tosca.services.impl;
3 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
4 import org.openecomp.sdc.tosca.datatypes.model.Metadata;
5 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
6 import org.openecomp.sdc.tosca.services.ToscaUtil;
7 import org.openecomp.core.utilities.file.FileContentHandler;
8 import org.junit.Assert;
12 import java.io.FileOutputStream;
13 import java.io.IOException;
14 import java.nio.file.Files;
15 import java.nio.file.Paths;
16 import java.util.Enumeration;
17 import java.util.HashMap;
19 import java.util.zip.ZipEntry;
20 import java.util.zip.ZipFile;
22 public class ToscaFileOutputServiceCsarImplTest {
24 private ToscaFileOutputServiceCsarImpl toscaFileOutputServiceCsarImpl =
25 new ToscaFileOutputServiceCsarImpl();
28 public void testCreationMetaFile() {
29 String createdMeta = toscaFileOutputServiceCsarImpl.createMetaFile("entryFile.yaml");
31 "TOSCA-Meta-File-Version: 1.0\n" +
32 "CSAR-Version: 1.1\n" +
33 "Created-By: ASDC Onboarding portal\n" +
34 "Entry-Definitions: Definitions" + File.separator + "entryFile.yaml";
35 Assert.assertEquals(createdMeta.replaceAll("\\s+", ""), expectedMeta.replaceAll("\\s+", ""));
39 public void testCSARFileCreationWithExternalArtifacts() throws IOException {
40 ServiceTemplate mainServiceTemplate = new ServiceTemplate();
41 Metadata metadata1 = new Metadata();
42 metadata1.setTemplate_author("OPENECOMP");
43 metadata1.setTemplate_name("ST1");
44 metadata1.setTemplate_version("1.0.0");
45 mainServiceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
46 mainServiceTemplate.setDescription("testing desc tosca service template");
47 mainServiceTemplate.setMetadata(metadata1);
49 ServiceTemplate additionalServiceTemplate = new ServiceTemplate();
50 Metadata metadata2 = new Metadata();
51 metadata2.setTemplate_author("OPENECOMP");
52 metadata2.setTemplate_name("ST2");
53 metadata2.setTemplate_version("1.0.0");
54 additionalServiceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
55 additionalServiceTemplate.setDescription("testing desc tosca service template");
56 additionalServiceTemplate.setMetadata(metadata2);
58 Map<String, ServiceTemplate> definitionsInput = new HashMap<>();
60 .put(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate), mainServiceTemplate);
61 definitionsInput.put(ToscaUtil.getServiceTemplateFileName(additionalServiceTemplate),
62 additionalServiceTemplate);
65 Map<String, byte[]> dummyHeatArtifacts = new HashMap<>();
66 String file1Content = "this is file number 1";
67 String file2Content = "this is file number 2";
68 String file1 = "file1.xml";
69 dummyHeatArtifacts.put(file1, file1Content.getBytes());
70 String file2 = "file2.yml";
71 dummyHeatArtifacts.put(file2, file2Content.getBytes());
74 FileContentHandler heatFiles = new FileContentHandler();
75 heatFiles.putAll(dummyHeatArtifacts);
76 Map<String, byte[]> licenseArtifacts = new HashMap<>();
78 FileContentHandler licenseArtifactsFiles = new FileContentHandler();
81 ToscaFileOutputServiceCsarImpl.EXTERNAL_ARTIFACTS_FOLDER_NAME + File.separator +
82 "license-file-1.xml", file1Content.getBytes());
84 ToscaFileOutputServiceCsarImpl.EXTERNAL_ARTIFACTS_FOLDER_NAME + File.separator +
85 "license-file-2.xml", file1Content.getBytes());
87 licenseArtifactsFiles.putAll(licenseArtifacts);
89 byte[] csarFile = toscaFileOutputServiceCsarImpl.createOutputFile(
90 new ToscaServiceModel(heatFiles, definitionsInput,
91 ToscaUtil.getServiceTemplateFileName(mainServiceTemplate)), licenseArtifactsFiles);
93 String resultFileName = "resultFile.zip";
94 File file = new File(resultFileName);
95 FileOutputStream fos = new FileOutputStream(file);
99 ZipFile zipFile = new ZipFile(resultFileName);
101 Enumeration<? extends ZipEntry> entries = zipFile.entries();
104 while (entries.hasMoreElements()) {
106 entries.nextElement();
108 Assert.assertEquals(7, count);
110 Files.delete(Paths.get(file.getPath()));
114 public void testCSARFileCreation_noArtifacts() throws IOException {
115 ServiceTemplate serviceTemplate = new ServiceTemplate();
116 Metadata metadata = new Metadata();
117 metadata.setTemplate_author("OPENECOMP");
118 metadata.setTemplate_name("Test");
119 metadata.setTemplate_version("1.0.0");
120 serviceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
121 serviceTemplate.setDescription("testing desc tosca service template");
122 serviceTemplate.setMetadata(metadata);
123 Map<String, ServiceTemplate> definitionsInput = new HashMap<>();
124 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
125 definitionsInput.put(serviceTemplateFileName, serviceTemplate);
126 byte[] csarFile = toscaFileOutputServiceCsarImpl
127 .createOutputFile(new ToscaServiceModel(null, definitionsInput, serviceTemplateFileName),
131 String resultFileName = "resultFile.zip";
132 File file = new File(resultFileName);
133 FileOutputStream fos = new FileOutputStream(file);
137 ZipFile zipFile = new ZipFile(resultFileName);
139 Enumeration<? extends ZipEntry> entries = zipFile.entries();
142 while (entries.hasMoreElements()) {
144 entries.nextElement();
146 Assert.assertEquals(2, count);
148 Files.delete(Paths.get(file.getPath()));