Sync Integ to Master
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / merge / resource / ResourceDataMergeBusinessLogicTest.java
1 package org.openecomp.sdc.be.components.merge.resource;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.mockito.InjectMocks;
7 import org.mockito.Mock;
8 import org.mockito.junit.MockitoJUnitRunner;
9 import org.openecomp.sdc.be.components.merge.instance.ComponentsMergeCommand;
10 import org.openecomp.sdc.be.components.utils.ObjectGenerator;
11 import org.openecomp.sdc.be.dao.api.ActionStatus;
12 import org.openecomp.sdc.be.model.Resource;
13
14 import java.util.Arrays;
15
16 import static org.junit.Assert.assertEquals;
17 import static org.mockito.Mockito.verify;
18 import static org.mockito.Mockito.verifyZeroInteractions;
19 import static org.mockito.Mockito.when;
20
21 @RunWith(MockitoJUnitRunner.class)
22 public class ResourceDataMergeBusinessLogicTest {
23
24     @InjectMocks
25     private ResourceDataMergeBusinessLogic testInstance;
26
27     @Mock
28     private ComponentsMergeCommand commandA;
29
30     @Mock
31     private ComponentsMergeCommand commandB;
32
33     @Mock
34     private ComponentsMergeCommand commandC;
35
36     @Before
37     public void setUp() throws Exception {
38         testInstance = new ResourceDataMergeBusinessLogic(Arrays.asList(commandA, commandB, commandC));
39     }
40
41     @Test
42     public void mergeResources_allMergeClassesAreCalled() {
43         Resource oldResource = ObjectGenerator.buildBasicResource();
44         Resource newResource = ObjectGenerator.buildBasicResource();
45         when(commandA.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
46         when(commandB.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
47         when(commandC.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
48         ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
49         assertEquals(ActionStatus.OK, actionStatus);
50     }
51
52     @Test
53     public void mergeResources_mergeCommandFailed_dontCallOtherMergeMethods() {
54         Resource oldResource = ObjectGenerator.buildBasicResource();
55         Resource newResource = ObjectGenerator.buildBasicResource();
56         when(commandA.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.GENERAL_ERROR);
57         ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
58         assertEquals(ActionStatus.GENERAL_ERROR, actionStatus);
59         verify(commandA).description();
60         verifyZeroInteractions(commandB, commandC);
61     }
62
63 }