1 package org.openecomp.sdc.be.components.merge.resource;
4 import org.junit.Before;
6 import org.junit.runner.RunWith;
7 import org.mockito.InjectMocks;
8 import org.mockito.Mock;
9 import org.mockito.junit.MockitoJUnitRunner;
10 import org.openecomp.sdc.be.components.merge.ComponentsMergeCommand;
11 import org.openecomp.sdc.be.components.utils.ObjectGenerator;
12 import org.openecomp.sdc.be.dao.api.ActionStatus;
13 import org.openecomp.sdc.be.model.Resource;
15 import static java.util.Arrays.asList;
16 import static org.junit.Assert.assertEquals;
17 import static org.mockito.Mockito.*;
19 @RunWith(MockitoJUnitRunner.class)
20 public class ResourceDataMergeBusinessLogicTest {
23 private ResourceDataMergeBusinessLogic testInstance;
26 private MergeCommandsFactory mergeCommandsFactory;
29 private ComponentsMergeCommand commandA;
32 private ComponentsMergeCommand commandB;
35 private ComponentsMergeCommand commandC;
37 private Resource oldResource, newResource;
40 public void setUp() throws Exception {
41 oldResource = ObjectGenerator.buildBasicResource();
42 newResource = ObjectGenerator.buildBasicResource();
43 when(mergeCommandsFactory.getMergeCommands(oldResource, newResource)).thenReturn(Either.left(asList(commandA, commandB, commandC)));
47 public void whenCommandsFactoryFails_propagateTheFailure() {
48 when(mergeCommandsFactory.getMergeCommands(oldResource, newResource)).thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
49 ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
50 assertEquals(ActionStatus.GENERAL_ERROR, actionStatus);
51 verifyZeroInteractions(commandA, commandB, commandC);
55 public void mergeResources_allMergeClassesAreCalled() {
56 when(commandA.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
57 when(commandB.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
58 when(commandC.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.OK);
59 ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
60 assertEquals(ActionStatus.OK, actionStatus);
64 public void mergeResources_mergeCommandFailed_dontCallOtherMergeMethods() {
65 when(commandA.mergeComponents(oldResource, newResource)).thenReturn(ActionStatus.GENERAL_ERROR);
66 ActionStatus actionStatus = testInstance.mergeResourceEntities(oldResource, newResource);
67 assertEquals(ActionStatus.GENERAL_ERROR, actionStatus);
68 verify(commandA).description();
69 verifyZeroInteractions(commandB, commandC);