2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.components.merge.instance;
23 import fj.data.Either;
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.mockito.InjectMocks;
27 import org.mockito.Mock;
28 import org.mockito.Mockito;
29 import org.mockito.MockitoAnnotations;
30 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
31 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
32 import org.openecomp.sdc.be.model.*;
33 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
34 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
35 import org.openecomp.sdc.exception.ResponseFormat;
37 import java.util.HashMap;
38 import java.util.LinkedList;
39 import java.util.List;
42 import static junit.framework.TestCase.assertEquals;
43 import static org.mockito.Mockito.when;
45 public class ComponentInstanceArtifactsMergeTest {
48 ComponentInstanceArtifactsMerge testInstance;
51 ArtifactsBusinessLogic artifactsBusinessLogicMock;
54 ToscaOperationFacade toscaOperationFacadeMock;
57 public void setUp() throws Exception {
58 MockitoAnnotations.initMocks(this);
62 public void testDeploymentArtifactSaveData() throws Exception {
64 Component containerComponent = new Resource();
65 Component originComponent = buildOriginalComponentWithOneArtifact();
66 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
68 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
69 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
70 Map<String, ArtifactDefinition> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder
71 .getOrigComponentDeploymentArtifactsCreatedOnTheInstance();
73 assertEquals(originalComponentDeploymentArtifactsCreatedOnTheInstance.size(), 1);
74 assert (originalComponentDeploymentArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
78 public void testInformationalArtifactSaveData() throws Exception {
80 Component containerComponent = new Resource();
81 Component originComponent = buildOriginalComponentWithOneArtifact();
82 ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts();
84 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
85 testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent);
86 Map<String, ArtifactDefinition> originalComponentInformationalArtifactsCreatedOnTheInstance = dataForMergeHolder
87 .getOrigComponentInformationalArtifactsCreatedOnTheInstance();
89 assertEquals(originalComponentInformationalArtifactsCreatedOnTheInstance.size(), 1);
90 assert (originalComponentInformationalArtifactsCreatedOnTheInstance.containsKey("artifactTwo"));
94 public void testMergeDataAfterCreate() throws Exception {
96 Component originComponent = buildOriginalComponentWithOneArtifact();
97 List<ComponentInstance> resourceInstances = new LinkedList<>();
98 ComponentInstance ci = new ComponentInstance();
99 ci.setUniqueId("mock");
100 resourceInstances.add(ci);
101 originComponent.setComponentInstances(resourceInstances);
102 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
103 Map<String, ArtifactDefinition> origDeploymentArtifacts = new HashMap<>();
104 ArtifactDefinition currentArtifactDefinition = new ArtifactDefinition();
105 origDeploymentArtifacts.put("mock", currentArtifactDefinition);
106 dataForMergeHolder.setOrigComponentDeploymentArtifactsCreatedOnTheInstance(origDeploymentArtifacts);
108 when(artifactsBusinessLogicMock.buildJsonForUpdateArtifact(Mockito.anyString(),
111 Mockito.any(ArtifactGroupTypeEnum.class),
115 Mockito.any(byte[].class),
117 Mockito.any(List.class)))
118 .thenReturn(new HashMap<>());
120 Either<Either<ArtifactDefinition, Operation>, ResponseFormat> left = Either.left(Either.left(new ArtifactDefinition()));
122 when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.anyString(), Mockito.any(Component.class), Mockito.any(User.class),
123 Mockito.any(Map.class), Mockito.any(ArtifactOperationInfo.class), Mockito.any(ArtifactDefinition.class))).thenReturn(left);
125 testInstance.mergeDataAfterCreate(new User(), dataForMergeHolder, originComponent, "mock");
129 private ComponentInstance buildComponentInstanceWithTwoArtifacts() {
130 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
131 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
132 ArtifactDefinition artifactCreatedOnTheInstance = new ArtifactDefinition();
133 artifactCreatedOnTheInstance.setArtifactLabel("artifactTwo");
135 Map<String, ArtifactDefinition> componentInstanceArtifacts = new HashMap<>();
136 componentInstanceArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
137 artifactFromTheOriginalResource);
138 componentInstanceArtifacts.put(artifactCreatedOnTheInstance.getArtifactLabel(), artifactCreatedOnTheInstance);
140 ComponentInstance componentInstance = new ComponentInstance();
141 componentInstance.setDeploymentArtifacts(componentInstanceArtifacts);
142 componentInstance.setArtifacts(componentInstanceArtifacts);
143 return componentInstance;
146 private Component buildOriginalComponentWithOneArtifact() {
147 ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition();
148 artifactFromTheOriginalResource.setArtifactLabel("artifactOne");
150 Map<String, ArtifactDefinition> originComponentArtifacts = new HashMap<>();
151 originComponentArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(),
152 artifactFromTheOriginalResource);
153 Component originComponent = new Resource();
154 originComponent.setDeploymentArtifacts(originComponentArtifacts);
155 originComponent.setArtifacts(originComponentArtifacts);
156 return originComponent;