2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
24 package org.onap.clamp.clds.sdc.controller.installer;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
31 import com.att.aft.dme2.internal.apache.commons.io.IOUtils;
34 import java.io.IOException;
35 import java.nio.file.Files;
36 import java.nio.file.Path;
37 import java.nio.file.Paths;
38 import java.util.ArrayList;
39 import java.util.List;
41 import org.junit.Test;
42 import org.mockito.Mockito;
43 import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException;
44 import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
45 import org.onap.clamp.clds.util.ResourceFileUtil;
46 import org.openecomp.sdc.api.notification.IArtifactInfo;
47 import org.openecomp.sdc.api.notification.INotificationData;
48 import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;
49 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
51 public class CsarHandlerTest {
53 private static final String sdcFolder = "/tmp/csar-handler-tests";
54 private static final String csarArtifactName = "testArtifact.csar";
57 public void testConstructor() throws CsarHandlerException {
58 IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class);
59 Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE);
60 Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName);
61 List<IArtifactInfo> servicesList = new ArrayList<>();
62 servicesList.add(serviceArtifact);
63 INotificationData notifData = Mockito.mock(INotificationData.class);
64 Mockito.when(notifData.getServiceArtifacts()).thenReturn(servicesList);
65 CsarHandler csar = new CsarHandler(notifData, "test-controller", sdcFolder);
66 assertEquals(sdcFolder + "/test-controller" + "/" + csarArtifactName, csar.getFilePath());
69 @Test(expected = CsarHandlerException.class)
70 public void testFailingConstructor() throws CsarHandlerException {
71 INotificationData notifData = Mockito.mock(INotificationData.class);
72 Mockito.when(notifData.getServiceArtifacts()).thenReturn(new ArrayList<>());
73 new CsarHandler(notifData, "test-controller", "/tmp/csar-handler-tests");
74 fail("Exception should have been raised");
78 public void testSave()
79 throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException {
80 IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class);
81 Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE);
82 Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName);
83 List<IArtifactInfo> servicesList = new ArrayList<>();
84 servicesList.add(serviceArtifact);
85 INotificationData notifData = Mockito.mock(INotificationData.class);
86 Mockito.when(notifData.getServiceArtifacts()).thenReturn(servicesList);
87 CsarHandler csar = new CsarHandler(notifData, "test-controller", "/tmp/csar-handler-tests");
88 IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class);
89 Mockito.when(resultArtifact.getArtifactPayload()).thenReturn(
90 IOUtils.toByteArray(ResourceFileUtil.getResourceAsStream("example/sdc/service-Simsfoimap0112.csar")));
92 csar.save(resultArtifact);
93 assertTrue((new File(sdcFolder + "/test-controller/" + csarArtifactName)).exists());
94 assertEquals(csarArtifactName, csar.getArtifactElement().getArtifactName());
95 assertNotNull(csar.getSdcCsarHelper());
97 String blueprint = csar.getDcaeBlueprint();
98 assertNotNull(blueprint);
99 assertTrue(!blueprint.isEmpty());
100 assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1"));
102 Path path = Paths.get(sdcFolder + "/test-controller/" + csarArtifactName);
103 Files.deleteIfExists(path);