Upgrade testing frameworks to latest not-vulnerable versions
[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.config.ConfigurationManager;
30 import org.openecomp.sdc.be.model.Component;
31 import org.openecomp.sdc.be.model.ComponentInstance;
32 import org.openecomp.sdc.be.model.User;
33 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ExternalReferencesOperation;
34
35 import javax.annotation.Resource;
36 import java.util.Arrays;
37 import java.util.Collections;
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41 import org.openecomp.sdc.common.impl.ExternalConfiguration;
42 import org.openecomp.sdc.common.impl.FSConfigurationSource;
43
44 import static org.assertj.core.api.Assertions.assertThat;
45 import static org.mockito.ArgumentMatchers.any;
46 import static org.mockito.ArgumentMatchers.eq;
47 import static org.mockito.Mockito.times;
48 import static org.mockito.Mockito.verify;
49 import static org.mockito.Mockito.verifyNoInteractions;
50 import static org.mockito.Mockito.when;
51
52 @RunWith(MockitoJUnitRunner.class)
53 public class ExternalRefsMergeBLTest {
54
55     private static final String NEW_INSTANCE_ID = "NEW_INSTANCE_ID";
56     @Resource
57     private ExternalRefsMergeBL externalRefsMergeBL;
58     @Mock
59     private ExternalReferencesOperation externalReferencesOperation;
60
61     private final Map<String, List<String>> externalRefs = new HashMap<>();
62
63     @Before
64     public void setUp() throws Exception {
65         externalRefsMergeBL = new ExternalRefsMergeBL(externalReferencesOperation);
66         externalRefs.put("a", Arrays.asList("1", "2"));
67         new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"));
68     }
69
70     @Test
71     public void testExternalArtifactsSaveData_noArtifactsExist() {
72         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
73         ComponentInstance componentInstance = new ComponentInstance();
74         when(externalReferencesOperation.getAllExternalReferences(any(), any()))
75                 .thenReturn(new HashMap<>());
76
77         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
78         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
79         Map<String, List<String>> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder.getOrigCompInstExternalRefs();
80
81         assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isZero();
82     }
83
84     @Test
85     public void testExternalArtifactsSaveData_artifactsExist() {
86         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
87         ComponentInstance componentInstance = new ComponentInstance();
88         when(externalReferencesOperation.getAllExternalReferences(any(), any()))
89                 .thenReturn(externalRefs);
90
91         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
92         externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
93         Map<String, List<String>> origCompInstExternalRefs = dataForMergeHolder.getOrigCompInstExternalRefs();
94
95         assertThat(origCompInstExternalRefs.size()).isEqualTo(1);
96         assertThat(origCompInstExternalRefs.containsKey("a")).isTrue();
97     }
98
99     @Test
100     public void testExternalArtifactsRestoreData_noArtifacts() {
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         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
107         verifyNoInteractions(externalReferencesOperation);
108     }
109
110     @Test
111     public void testExternalArtifactsRestoreData_hasArtifacts() {
112         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
113         ComponentInstance ci = new ComponentInstance();
114         ci.setUniqueId(NEW_INSTANCE_ID);
115         containerComponent.setComponentInstances(Collections.singletonList(ci));
116         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
117         dataForMergeHolder.setOrigComponentInstanceExternalRefs(externalRefs);
118         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
119         verify(externalReferencesOperation, times(1)).addAllExternalReferences(any(), eq(NEW_INSTANCE_ID), eq(externalRefs));
120     }
121
122     @Test(expected=ComponentException.class)
123     public void testExternalArtifactsRestoreData_noCI() {
124         Component containerComponent = new org.openecomp.sdc.be.model.Resource();
125         DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
126         externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
127     }
128 }