1 package org.openecomp.sdc.be.components.merge.instance;
3 import static junit.framework.TestCase.assertEquals;
4 import static org.mockito.Mockito.when;
6 import java.util.HashMap;
7 import java.util.LinkedList;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.mockito.InjectMocks;
14 import org.mockito.Mock;
15 import org.mockito.Mockito;
16 import org.mockito.MockitoAnnotations;
17 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
18 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
19 import org.openecomp.sdc.be.model.ArtifactDefinition;
20 import org.openecomp.sdc.be.model.Component;
21 import org.openecomp.sdc.be.model.ComponentInstance;
22 import org.openecomp.sdc.be.model.Operation;
23 import org.openecomp.sdc.be.model.Resource;
24 import org.openecomp.sdc.be.model.User;
25 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
26 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
27 import org.openecomp.sdc.exception.ResponseFormat;
29 import fj.data.Either;
31 public class ComponentInstanceArtifactsMergeTest {
34 ComponentInstanceArtifactsMerge testInstance;
37 ArtifactsBusinessLogic artifactsBusinessLogicMock;
40 ToscaOperationFacade toscaOperationFacadeMock;
43 public void setUp() throws Exception {
44 MockitoAnnotations.initMocks(this);
48 public void testDeploymentArtifactSaveData() throws Exception {
50 Component containerComponent = new Resource();
51 Component originComponent = buildOriginalComponentWithOneArtifact();
52 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
54 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
55 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
56 Map<String, ArtifactDefinition> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder
57 .getOrigComponentDeploymentArtifactsCreatedOnTheInstance();
59 assertEquals(originalComponentDeploymentArtifactsCreatedOnTheInstance.size(), 1);
60 assert (originalComponentDeploymentArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
64 public void testInformationalArtifactSaveData() throws Exception {
66 Component containerComponent = new Resource();
67 Component originComponent = buildOriginalComponentWithOneArtifact();
68 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
70 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
71 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
72 Map<String, ArtifactDefinition> originalComponentInformationalArtifactsCreatedOnTheInstance = dataForMergeHolder
73 .getOrigComponentInformationalArtifactsCreatedOnTheInstance();
75 assertEquals(originalComponentInformationalArtifactsCreatedOnTheInstance.size(), 1);
76 assert (originalComponentInformationalArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
80 public void testMergeDataAfterCreate() throws Exception {
82 Component originComponent = buildOriginalComponentWithOneArtifact();
83 List<ComponentInstance> resourceInstances = new LinkedList<>();
84 ComponentInstance ci = new ComponentInstance();
85 ci.setUniqueId("mock");
86 resourceInstances.add(ci);
87 originComponent.setComponentInstances(resourceInstances);
88 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
89 Map<String, ArtifactDefinition> origDeploymentArtifacts = new HashMap<>();
90 ArtifactDefinition currentArtifactDefinition = new ArtifactDefinition();
91 origDeploymentArtifacts.put("mock", currentArtifactDefinition);
92 dataForMergeHolder.setOrigComponentDeploymentArtifactsCreatedOnTheInstance(origDeploymentArtifacts);
94 when(artifactsBusinessLogicMock.buildJsonForUpdateArtifact(Mockito.anyString(),
97 Mockito.any(ArtifactGroupTypeEnum.class),
101 Mockito.any(byte[].class),
103 Mockito.any(List.class)))
104 .thenReturn(new HashMap<>());
106 Either<Either<ArtifactDefinition, Operation>, ResponseFormat> left = Either.left(Either.left(new ArtifactDefinition()));
108 when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.anyString(), Mockito.any(Component.class), Mockito.any(User.class),
109 Mockito.any(Map.class), Mockito.any(ArtifactOperationInfo.class), Mockito.any(ArtifactDefinition.class))).thenReturn(left);
111 testInstance.mergeDataAfterCreate(new User(), dataForMergeHolder, originComponent, "mock");
115 private ComponentInstance buildComponentInstanceWithTwoArtifacts() {
116 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
117 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
118 ArtifactDefinition artifactCreatedOnTheInstance = new ArtifactDefinition();
119 artifactCreatedOnTheInstance.setArtifactLabel("artifactTwo");
121 Map<String, ArtifactDefinition> componentInstanceArtifacts = new HashMap<>();
122 componentInstanceArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
123 artifactFromTheOriginalResource);
124 componentInstanceArtifacts.put(artifactCreatedOnTheInstance.getArtifactLabel(), artifactCreatedOnTheInstance);
126 ComponentInstance componentInstance = new ComponentInstance();
127 componentInstance.setDeploymentArtifacts(componentInstanceArtifacts);
128 componentInstance.setArtifacts(componentInstanceArtifacts);
129 return componentInstance;
132 private Component buildOriginalComponentWithOneArtifact() {
133 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
134 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
136 Map<String, ArtifactDefinition> originComponentArtifacts = new HashMap<>();
137 originComponentArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
138 artifactFromTheOriginalResource);
139 Component originComponent = new Resource();
140 originComponent.setDeploymentArtifacts(originComponentArtifacts);
141 originComponent.setArtifacts(originComponentArtifacts);
142 return originComponent;