1 package org.openecomp.sdc.be.components.merge.instance;
4 import org.junit.Before;
6 import org.mockito.InjectMocks;
7 import org.mockito.Mock;
8 import org.mockito.Mockito;
9 import org.mockito.MockitoAnnotations;
10 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
11 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
12 import org.openecomp.sdc.be.model.*;
13 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
14 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
15 import org.openecomp.sdc.exception.ResponseFormat;
17 import java.util.HashMap;
18 import java.util.LinkedList;
19 import java.util.List;
22 import static junit.framework.TestCase.assertEquals;
23 import static org.mockito.Mockito.when;
25 public class ComponentInstanceArtifactsMergeTest {
28 ComponentInstanceArtifactsMerge testInstance;
31 ArtifactsBusinessLogic artifactsBusinessLogicMock;
34 ToscaOperationFacade toscaOperationFacadeMock;
37 public void setUp() throws Exception {
38 MockitoAnnotations.initMocks(this);
42 public void testDeploymentArtifactSaveData() throws Exception {
44 Component containerComponent = new Resource();
45 Component originComponent = buildOriginalComponentWithOneArtifact();
46 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
48 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
49 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
50 Map<String, ArtifactDefinition> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder
51 .getOrigComponentDeploymentArtifactsCreatedOnTheInstance();
53 assertEquals(originalComponentDeploymentArtifactsCreatedOnTheInstance.size(), 1);
54 assert (originalComponentDeploymentArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
58 public void testInformationalArtifactSaveData() throws Exception {
60 Component containerComponent = new Resource();
61 Component originComponent = buildOriginalComponentWithOneArtifact();
62 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
64 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
65 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
66 Map<String, ArtifactDefinition> originalComponentInformationalArtifactsCreatedOnTheInstance = dataForMergeHolder
67 .getOrigComponentInformationalArtifactsCreatedOnTheInstance();
69 assertEquals(originalComponentInformationalArtifactsCreatedOnTheInstance.size(), 1);
70 assert (originalComponentInformationalArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
74 public void testMergeDataAfterCreate() throws Exception {
76 Component originComponent = buildOriginalComponentWithOneArtifact();
77 List<ComponentInstance> resourceInstances = new LinkedList<>();
78 ComponentInstance ci = new ComponentInstance();
79 ci.setUniqueId("mock");
80 resourceInstances.add(ci);
81 originComponent.setComponentInstances(resourceInstances);
82 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
83 Map<String, ArtifactDefinition> origDeploymentArtifacts = new HashMap<>();
84 ArtifactDefinition currentArtifactDefinition = new ArtifactDefinition();
85 origDeploymentArtifacts.put("mock", currentArtifactDefinition);
86 dataForMergeHolder.setOrigComponentDeploymentArtifactsCreatedOnTheInstance(origDeploymentArtifacts);
88 when(artifactsBusinessLogicMock.buildJsonForUpdateArtifact(Mockito.anyString(),
91 Mockito.any(ArtifactGroupTypeEnum.class),
95 Mockito.any(byte[].class),
97 Mockito.any(List.class)))
98 .thenReturn(new HashMap<>());
100 Either<Either<ArtifactDefinition, Operation>, ResponseFormat> left = Either.left(Either.left(new ArtifactDefinition()));
102 when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.anyString(), Mockito.any(Component.class), Mockito.any(User.class),
103 Mockito.any(Map.class), Mockito.any(ArtifactOperationInfo.class), Mockito.any(ArtifactDefinition.class))).thenReturn(left);
105 testInstance.mergeDataAfterCreate(new User(), dataForMergeHolder, originComponent, "mock");
109 private ComponentInstance buildComponentInstanceWithTwoArtifacts() {
110 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
111 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
112 ArtifactDefinition artifactCreatedOnTheInstance = new ArtifactDefinition();
113 artifactCreatedOnTheInstance.setArtifactLabel("artifactTwo");
115 Map<String, ArtifactDefinition> componentInstanceArtifacts = new HashMap<>();
116 componentInstanceArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
117 artifactFromTheOriginalResource);
118 componentInstanceArtifacts.put(artifactCreatedOnTheInstance.getArtifactLabel(), artifactCreatedOnTheInstance);
120 ComponentInstance componentInstance = new ComponentInstance();
121 componentInstance.setDeploymentArtifacts(componentInstanceArtifacts);
122 componentInstance.setArtifacts(componentInstanceArtifacts);
123 return componentInstance;
126 private Component buildOriginalComponentWithOneArtifact() {
127 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
128 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
130 Map<String, ArtifactDefinition> originComponentArtifacts = new HashMap<>();
131 originComponentArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
132 artifactFromTheOriginalResource);
133 Component originComponent = new Resource();
134 originComponent.setDeploymentArtifacts(originComponentArtifacts);
135 originComponent.setArtifacts(originComponentArtifacts);
136 return originComponent;