Refactoring Consolidation Service
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / version / PostChangeVersionOperationOrchestratorTest.java
1 package org.openecomp.sdc.be.components.impl.version;
2
3 import static java.util.Arrays.asList;
4 import static org.assertj.core.api.Assertions.assertThat;
5 import static org.mockito.Mockito.verifyZeroInteractions;
6 import static org.mockito.Mockito.when;
7
8 import org.junit.Before;
9 import org.junit.Test;
10 import org.junit.runner.RunWith;
11 import org.mockito.Mock;
12 import org.mockito.junit.MockitoJUnitRunner;
13 import org.openecomp.sdc.be.dao.api.ActionStatus;
14 import org.openecomp.sdc.be.model.ComponentInstance;
15 import org.openecomp.sdc.be.model.Resource;
16
17 @RunWith(MockitoJUnitRunner.class)
18 public class PostChangeVersionOperationOrchestratorTest {
19
20     private PostChangeVersionOperationOrchestrator testInstance;
21     @Mock
22     private PostChangeVersionOperation postChangeVersionOperation1;
23     @Mock
24     private PostChangeVersionOperation postChangeVersionOperation2;
25     @Mock
26     private PostChangeVersionOperation postChangeVersionOperation3;
27
28     @Before
29     public void setUp() throws Exception {
30         testInstance = new PostChangeVersionOperationOrchestrator(asList(postChangeVersionOperation1, postChangeVersionOperation2, postChangeVersionOperation3));
31     }
32
33     @Test
34     public void whenFirstPostOperationFails_doNotRunFollowingOperations() {
35         ComponentInstance newVersion = new ComponentInstance();
36         ComponentInstance prevVersion = new ComponentInstance();
37         Resource container = new Resource();
38         when(postChangeVersionOperation1.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.GENERAL_ERROR);
39         ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(container, prevVersion, newVersion);
40         assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
41         verifyZeroInteractions(postChangeVersionOperation2, postChangeVersionOperation3);
42     }
43
44     @Test
45     public void whenAnyPostOperationFails_doNotRunFollowingOperations() {
46         ComponentInstance newVersion = new ComponentInstance();
47         ComponentInstance prevVersion = new ComponentInstance();
48         Resource container = new Resource();
49         when(postChangeVersionOperation1.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
50         when(postChangeVersionOperation2.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.GENERAL_ERROR);
51         ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(container, prevVersion, newVersion);
52         assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
53         verifyZeroInteractions(postChangeVersionOperation3);
54     }
55
56     @Test
57     public void whenLastPostOperationFails_returnTheFailureResult() {
58         ComponentInstance newVersion = new ComponentInstance();
59         ComponentInstance prevVersion = new ComponentInstance();
60         Resource container = new Resource();
61         when(postChangeVersionOperation1.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
62         when(postChangeVersionOperation2.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
63         when(postChangeVersionOperation3.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.GENERAL_ERROR);
64         ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(container, prevVersion, newVersion);
65         assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
66     }
67
68     @Test
69     public void whenAllOperationsSucceeds_returnOk() {
70         ComponentInstance newVersion = new ComponentInstance();
71         ComponentInstance prevVersion = new ComponentInstance();
72         Resource container = new Resource();
73         when(postChangeVersionOperation1.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
74         when(postChangeVersionOperation2.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
75         when(postChangeVersionOperation3.onChangeVersion(container, prevVersion, newVersion)).thenReturn(ActionStatus.OK);
76         ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(container, prevVersion, newVersion);
77         assertThat(actionStatus).isEqualTo(ActionStatus.OK);
78     }
79
80 }