1 package org.openecomp.sdc.be.components.merge.instance;
3 import org.junit.Before;
5 import org.junit.runner.RunWith;
6 import org.mockito.Mock;
7 import org.mockito.junit.MockitoJUnitRunner;
8 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
9 import org.openecomp.sdc.be.model.Component;
10 import org.openecomp.sdc.be.model.ComponentInstance;
11 import org.openecomp.sdc.be.model.User;
12 import org.openecomp.sdc.be.model.jsontitan.operations.ExternalReferencesOperation;
14 import javax.annotation.Resource;
17 import static org.assertj.core.api.Assertions.assertThat;
18 import static org.mockito.ArgumentMatchers.any;
19 import static org.mockito.ArgumentMatchers.eq;
20 import static org.mockito.Mockito.*;
22 @RunWith(MockitoJUnitRunner.class)
23 public class ExternalRefsMergeBLTest {
25 private static final String NEW_INSTANCE_ID = "NEW_INSTANCE_ID";
27 private ExternalRefsMergeBL externalRefsMergeBL;
29 private ExternalReferencesOperation externalReferencesOperation;
31 private final Map<String, List<String>> externalRefs = new HashMap<>();
34 public void setUp() throws Exception {
35 externalRefsMergeBL = new ExternalRefsMergeBL(externalReferencesOperation);
36 externalRefs.put("a", Arrays.asList("1", "2"));
40 public void testExternalArtifactsSaveData_noArtifactsExist() {
41 Component containerComponent = new org.openecomp.sdc.be.model.Resource();
42 ComponentInstance componentInstance = new ComponentInstance();
43 when(externalReferencesOperation.getAllExternalReferences(any(), any()))
44 .thenReturn(new HashMap<>());
46 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
47 externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
48 Map<String, List<String>> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder.getOrigCompInstExternalRefs();
50 assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isZero();
54 public void testExternalArtifactsSaveData_artifactsExist() {
55 Component containerComponent = new org.openecomp.sdc.be.model.Resource();
56 ComponentInstance componentInstance = new ComponentInstance();
57 when(externalReferencesOperation.getAllExternalReferences(any(), any()))
58 .thenReturn(externalRefs);
60 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
61 externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
62 Map<String, List<String>> origCompInstExternalRefs = dataForMergeHolder.getOrigCompInstExternalRefs();
64 assertThat(origCompInstExternalRefs.size()).isEqualTo(1);
65 assertThat(origCompInstExternalRefs.containsKey("a")).isTrue();
69 public void testExternalArtifactsRestoreData_noArtifacts() {
70 Component containerComponent = new org.openecomp.sdc.be.model.Resource();
71 ComponentInstance ci = new ComponentInstance();
72 ci.setUniqueId(NEW_INSTANCE_ID);
73 containerComponent.setComponentInstances(Collections.singletonList(ci));
74 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
75 externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
76 verifyZeroInteractions(externalReferencesOperation);
80 public void testExternalArtifactsRestoreData_hasArtifacts() {
81 Component containerComponent = new org.openecomp.sdc.be.model.Resource();
82 ComponentInstance ci = new ComponentInstance();
83 ci.setUniqueId(NEW_INSTANCE_ID);
84 containerComponent.setComponentInstances(Collections.singletonList(ci));
85 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
86 dataForMergeHolder.setOrigComponentInstanceExternalRefs(externalRefs);
87 externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
88 verify(externalReferencesOperation, times(1)).addAllExternalReferences(any(), eq(NEW_INSTANCE_ID), eq(externalRefs));
91 @Test(expected=ComponentException.class)
92 public void testExternalArtifactsRestoreData_noCI() {
93 Component containerComponent = new org.openecomp.sdc.be.model.Resource();
94 DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
95 externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);