1 package org.openecomp.sdc.be.components.impl.version;
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;
8 import org.junit.Before;
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;
17 @RunWith(MockitoJUnitRunner.class)
18 public class PostChangeVersionOperationOrchestratorTest {
20 private PostChangeVersionOperationOrchestrator testInstance;
22 private PostChangeVersionOperation postChangeVersionOperation1;
24 private PostChangeVersionOperation postChangeVersionOperation2;
26 private PostChangeVersionOperation postChangeVersionOperation3;
29 public void setUp() throws Exception {
30 testInstance = new PostChangeVersionOperationOrchestrator(asList(postChangeVersionOperation1, postChangeVersionOperation2, postChangeVersionOperation3));
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);
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);
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);
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);