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