[SDC-29] rebase continue work to align source
[sdc.git] / openecomp-be / lib / openecomp-sdc-enrichment-lib / openecomp-sdc-enrichment-impl / src / test / java / org / openecomp / sdc / enrichment / impl / external / artifact / ProcessArtifactEnricherTest.java
1 package org.openecomp.sdc.enrichment.impl.external.artifact;
2
3 import org.mockito.ArgumentCaptor;
4 import org.mockito.InjectMocks;
5 import org.mockito.Mock;
6 import org.mockito.Mockito;
7 import org.mockito.MockitoAnnotations;
8 import org.openecomp.core.enrichment.types.ArtifactCategory;
9 import org.openecomp.core.model.dao.EnrichedServiceModelDao;
10 import org.openecomp.core.model.types.ServiceArtifact;
11 import org.openecomp.core.utilities.file.FileUtils;
12 import org.openecomp.sdc.enrichment.EnrichmentInfo;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessType;
18 import org.openecomp.sdc.versioning.dao.types.Version;
19 import org.testng.Assert;
20 import org.testng.annotations.BeforeMethod;
21 import org.testng.annotations.Test;
22
23 import java.io.File;
24 import java.io.InputStream;
25 import java.nio.ByteBuffer;
26 import java.util.ArrayList;
27 import java.util.Collection;
28
29 import static org.mockito.Matchers.anyObject;
30 import static org.mockito.Mockito.atLeastOnce;
31 import static org.mockito.Mockito.doReturn;
32 import static org.mockito.Mockito.when;
33
34 public class ProcessArtifactEnricherTest {
35   @Mock
36   ProcessDao processDaoMock;
37   @Mock
38   EnrichedServiceModelDao enrichedServiceModelDaoMock;
39   @Mock
40   VendorSoftwareProductDao vendorSoftwareProductDaoMock;
41
42   @InjectMocks
43   ProcessArtifactEnricher processArtifactEnricher;
44
45
46   @BeforeMethod(alwaysRun = true)
47   public void injectDoubles() {
48     MockitoAnnotations.initMocks(this);
49   }
50
51   @Test
52   public void testEnrichComponent() throws Exception {
53     String vspId = "123";
54     String componentId = "1111111111";
55     Version version = new Version();
56     version.setMajor(1);
57     version.setMinor(0);
58
59     ComponentEntity componentEntity = getComponentEntity(vspId, version, componentId);
60
61     ProcessEntity entity = new ProcessEntity(vspId, version, componentId, null);
62     ProcessEntity processEntity = new ProcessEntity();
63     processEntity.setType(ProcessType.Lifecycle_Operations);
64     processEntity.setVspId(vspId);
65     processEntity.setVersion(version);
66     processEntity.setComponentId(componentId);
67     processEntity.setArtifactName("artifact_1kb.txt");
68     processEntity.setArtifact(getMibByteBuffer("/mock/enrichProcess/artifact_1kb.txt"));
69
70     Collection<ComponentEntity> componentList = new ArrayList<ComponentEntity>();
71     componentList.add(componentEntity);
72     when(vendorSoftwareProductDaoMock.listComponents(vspId, version)).thenReturn(componentList);
73
74     Collection<ProcessEntity> list = new ArrayList<ProcessEntity>();
75     list.add(processEntity);
76     when(processDaoMock.list(entity)).thenReturn(list);
77
78     when(processDaoMock.get(anyObject())).thenReturn(processEntity);
79
80     EnrichmentInfo info = new EnrichmentInfo();
81     info.setVersion(version);
82     info.setKey(vspId);
83     processArtifactEnricher.enrich(info);
84
85     String componentName = componentEntity.getComponentCompositionData().getName();
86
87     ArgumentCaptor<ServiceArtifact> expectedServiceArtifact =
88         ArgumentCaptor.forClass(ServiceArtifact.class);
89     Mockito.verify(enrichedServiceModelDaoMock, atLeastOnce())
90         .storeExternalArtifact(expectedServiceArtifact.capture());
91     Assert
92         .assertEquals(expectedServiceArtifact.getValue().getName().startsWith(componentName), true);
93     Assert.assertEquals(expectedServiceArtifact.getValue().getName(),
94         componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName() +
95             File.separator + "Lifecycle Operations" + File.separator + "artifact_1kb.txt");
96
97   }
98
99   private ComponentEntity getComponentEntity(String vspId, Version version, String componentId) {
100     ComponentEntity componentEntity = new ComponentEntity();
101     componentEntity.setId(componentId);
102     componentEntity.setVspId(vspId);
103     componentEntity.setVersion(version);
104
105     String componentName = vspId + "enrichMib_server";
106     String compositionData = "{\n" +
107         "  \"name\": \"org.openecomp.resource.vfc.nodes.heat." + componentName + "\",\n" +
108         "  \"displayName\": \"" + componentName + "\"\n" +
109         "}";
110     componentEntity.setCompositionData(compositionData);
111     return componentEntity;
112   }
113
114   private ByteBuffer getMibByteBuffer(String fileName) {
115     InputStream mibFile = FileUtils.getFileInputStream(this.getClass().getResource(fileName));
116     byte[] mibBytes = FileUtils.toByteArray(mibFile);
117     return ByteBuffer.wrap(mibBytes);
118   }
119 }