Sync Integ to Master
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / merge / GlobalTypesMergeBusinessLogicTest.java
1 package org.openecomp.sdc.be.components.merge;
2
3 import fj.data.Either;
4 import org.junit.Before;
5 import org.junit.Test;
6 import org.mockito.InjectMocks;
7 import org.mockito.Mock;
8 import org.mockito.MockitoAnnotations;
9 import org.openecomp.sdc.be.components.merge.input.ComponentInputsMergeBL;
10 import org.openecomp.sdc.be.dao.api.ActionStatus;
11 import org.openecomp.sdc.be.model.InputDefinition;
12 import org.openecomp.sdc.be.model.Resource;
13
14 import java.util.Arrays;
15 import java.util.List;
16
17 import static org.junit.Assert.assertEquals;
18 import static org.mockito.Mockito.verifyZeroInteractions;
19 import static org.mockito.Mockito.when;
20 import static org.openecomp.sdc.be.components.utils.ObjectGenerator.buildResourceWithInputs;
21
22 public class GlobalTypesMergeBusinessLogicTest {
23
24     @InjectMocks
25     private GlobalTypesMergeBusinessLogic testInstance;
26
27     @Mock
28     private ComponentInputsMergeBL resourceInputsMergeBLMock;
29
30     @Mock
31     private GlobalInputsFilteringBusinessLogic globalInputsFilteringBusinessLogic;
32
33     @Before
34     public void setUp() throws Exception {
35         MockitoAnnotations.initMocks(this);
36     }
37
38     @Test
39     public void mergeInstancePropsAndInputs_mergeOnlyNewResourceGenericGlobalTypes() {
40         Resource oldResource = buildResourceWithInputs("input1", "input2");
41         Resource newResource = buildResourceWithInputs("input1", "input2", "global1", "global2");
42         List<InputDefinition> globalInputs = Arrays.asList(newResource.getInputs().get(2), newResource.getInputs().get(3));
43         when(globalInputsFilteringBusinessLogic.filterGlobalInputs(newResource)).thenReturn(Either.left(globalInputs));
44         when(resourceInputsMergeBLMock.mergeComponentInputs(oldResource, newResource, globalInputs)).thenReturn(ActionStatus.OK);
45         ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
46         assertEquals(ActionStatus.OK, actionStatus);
47
48     }
49
50     @Test
51     public void mergeInstancePropsAndInputs_failedToFilterGlobalInputs() throws Exception {
52         Resource oldResource = buildResourceWithInputs("input1", "input2");
53         Resource newResource = buildResourceWithInputs("input1", "input2", "global1", "global2");
54         when(globalInputsFilteringBusinessLogic.filterGlobalInputs(newResource)).thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
55         ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
56         assertEquals(actionStatus, ActionStatus.GENERAL_ERROR);
57         verifyZeroInteractions(resourceInputsMergeBLMock);
58     }
59
60
61 }