Upgrade SDC from Titan to Janus Graph
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / merge / instance / ExternalRefsMergeBLTest.java
1 package org.openecomp.sdc.be.components.merge.instance;
2
3 import org.junit.Before;
4 import org.junit.Test;
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.jsonjanusgraph.operations.ExternalReferencesOperation;
13
14 import javax.annotation.Resource;
15 import java.util.*;
16
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.*;
21
22 @RunWith(MockitoJUnitRunner.class)
23 public class ExternalRefsMergeBLTest {
24
25     private static final String NEW_INSTANCE_ID = "NEW_INSTANCE_ID";
26     @Resource
27     private ExternalRefsMergeBL externalRefsMergeBL;
28     @Mock
29     private ExternalReferencesOperation externalReferencesOperation;
30
31     private final Map<String, List<String>> externalRefs = new HashMap<>();
32
33     @Before
34     public void setUp() throws Exception {
35         externalRefsMergeBL = new ExternalRefsMergeBL(externalReferencesOperation);
36         externalRefs.put("a", Arrays.asList("1", "2"));
37     }
38
39     @Test
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<>());
45
46         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
47         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
48         Map<String, List<String>> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder.getOrigCompInstExternalRefs();
49
50         assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isZero();
51     }
52
53     @Test
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);
59
60         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
61         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
62         Map<String, List<String>> origCompInstExternalRefs = dataForMergeHolder.getOrigCompInstExternalRefs();
63
64         assertThat(origCompInstExternalRefs.size()).isEqualTo(1);
65         assertThat(origCompInstExternalRefs.containsKey("a")).isTrue();
66     }
67
68     @Test
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);
77     }
78
79     @Test
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));
89     }
90
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);
96     }
97 }