Added oparent to sdc main
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / merge / instance / ExternalRefsMergeBLTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.be.components.merge.instance;
22
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.mockito.Mock;
27 import org.mockito.junit.MockitoJUnitRunner;
28 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
29 import org.openecomp.sdc.be.model.Component;
30 import org.openecomp.sdc.be.model.ComponentInstance;
31 import org.openecomp.sdc.be.model.User;
32 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ExternalReferencesOperation;
33
34 import javax.annotation.Resource;
35 import java.util.*;
36
37 import static org.assertj.core.api.Assertions.assertThat;
38 import static org.mockito.ArgumentMatchers.any;
39 import static org.mockito.ArgumentMatchers.eq;
40 import static org.mockito.Mockito.*;
41
42 @RunWith(MockitoJUnitRunner.class)
43 public class ExternalRefsMergeBLTest {
44
45     private static final String NEW_INSTANCE_ID = "NEW_INSTANCE_ID";
46     @Resource
47     private ExternalRefsMergeBL externalRefsMergeBL;
48     @Mock
49     private ExternalReferencesOperation externalReferencesOperation;
50
51     private final Map<String, List<String>> externalRefs = new HashMap<>();
52
53     @Before
54     public void setUp() throws Exception {
55         externalRefsMergeBL = new ExternalRefsMergeBL(externalReferencesOperation);
56         externalRefs.put("a", Arrays.asList("1", "2"));
57     }
58
59     @Test
60     public void testExternalArtifactsSaveData_noArtifactsExist() {
61         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
62         ComponentInstance componentInstance = new ComponentInstance();
63         when(externalReferencesOperation.getAllExternalReferences(any(), any()))
64                 .thenReturn(new HashMap<>());
65
66         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
67         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
68         Map<String, List<String>> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder.getOrigCompInstExternalRefs();
69
70         assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isZero();
71     }
72
73     @Test
74     public void testExternalArtifactsSaveData_artifactsExist() {
75         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
76         ComponentInstance componentInstance = new ComponentInstance();
77         when(externalReferencesOperation.getAllExternalReferences(any(), any()))
78                 .thenReturn(externalRefs);
79
80         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
81         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
82         Map<String, List<String>> origCompInstExternalRefs = dataForMergeHolder.getOrigCompInstExternalRefs();
83
84         assertThat(origCompInstExternalRefs.size()).isEqualTo(1);
85         assertThat(origCompInstExternalRefs.containsKey("a")).isTrue();
86     }
87
88     @Test
89     public void testExternalArtifactsRestoreData_noArtifacts() {
90         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
91         ComponentInstance ci = new ComponentInstance();
92         ci.setUniqueId(NEW_INSTANCE_ID);
93         containerComponent.setComponentInstances(Collections.singletonList(ci));
94         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
95         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
96         verifyZeroInteractions(externalReferencesOperation);
97     }
98
99     @Test
100     public void testExternalArtifactsRestoreData_hasArtifacts() {
101         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
102         ComponentInstance ci = new ComponentInstance();
103         ci.setUniqueId(NEW_INSTANCE_ID);
104         containerComponent.setComponentInstances(Collections.singletonList(ci));
105         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
106         dataForMergeHolder.setOrigComponentInstanceExternalRefs(externalRefs);
107         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
108         verify(externalReferencesOperation, times(1)).addAllExternalReferences(any(), eq(NEW_INSTANCE_ID), eq(externalRefs));
109     }
110
111     @Test(expected=ComponentException.class)
112     public void testExternalArtifactsRestoreData_noCI() {
113         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
114         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
115         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
116     }
117 }