aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java106
1 files changed, 106 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java
new file mode 100644
index 0000000000..cd925cb016
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/ComponentInstanceChangeOperationOrchestratorTest.java
@@ -0,0 +1,106 @@
+package org.openecomp.sdc.be.components.impl.instance;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.Resource;
+
+import static java.util.Arrays.asList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ComponentInstanceChangeOperationOrchestratorTest {
+
+ private static final Resource CONTAINER = new Resource();
+ private static final ComponentInstance NEW_VERSION = new ComponentInstance();
+ private static final ComponentInstance PREV_VERSION = new ComponentInstance();
+ private static final String DELETED_INS_ID = "id";
+ private ComponentInstanceChangeOperationOrchestrator testInstance;
+ @Mock
+ private OnComponentInstanceChangeOperation componentInstanceChangeOperation1;
+ @Mock
+ private OnComponentInstanceChangeOperation componentInstanceChangeOperation2;
+ @Mock
+ private OnComponentInstanceChangeOperation componentInstanceChangeOperation3;
+
+ @Before
+ public void setUp() throws Exception {
+ testInstance = new ComponentInstanceChangeOperationOrchestrator(asList(componentInstanceChangeOperation1, componentInstanceChangeOperation2, componentInstanceChangeOperation3));
+ }
+
+ @Test
+ public void doPostChangeVersionOperations_whenFirstPostOperationFails_doNotRunFollowingOperations() {
+ when(componentInstanceChangeOperation1.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(CONTAINER, PREV_VERSION, NEW_VERSION);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ verifyZeroInteractions(componentInstanceChangeOperation2, componentInstanceChangeOperation3);
+ }
+
+ @Test
+ public void doPostChangeVersionOperations_whenAnyPostOperationFails_doNotRunFollowingOperations() {
+ when(componentInstanceChangeOperation1.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(CONTAINER, PREV_VERSION, NEW_VERSION);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ verifyZeroInteractions(componentInstanceChangeOperation3);
+ }
+
+ @Test
+ public void doPostChangeVersionOperations_whenLastPostOperationFails_returnTheFailureResult() {
+ when(componentInstanceChangeOperation1.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation3.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(CONTAINER, PREV_VERSION, NEW_VERSION);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ }
+
+ @Test
+ public void doPostChangeVersionOperations_whenAllOperationsSucceeds_returnOk() {
+ when(componentInstanceChangeOperation1.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation3.onChangeVersion(CONTAINER, PREV_VERSION, NEW_VERSION)).thenReturn(ActionStatus.OK);
+ ActionStatus actionStatus = testInstance.doPostChangeVersionOperations(CONTAINER, PREV_VERSION, NEW_VERSION);
+ assertThat(actionStatus).isEqualTo(ActionStatus.OK);
+ }
+
+ @Test
+ public void doOnDeleteInstanceOperations_whenFirstPostOperationFails_doNotRunFollowingOperations() {
+ when(componentInstanceChangeOperation1.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doOnDeleteInstanceOperations(CONTAINER, DELETED_INS_ID);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ verifyZeroInteractions(componentInstanceChangeOperation2, componentInstanceChangeOperation3);
+ }
+
+ @Test
+ public void doOnDeleteInstanceOperations_whenAnyPostOperationFails_doNotRunFollowingOperations() {
+ when(componentInstanceChangeOperation1.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doOnDeleteInstanceOperations(CONTAINER, DELETED_INS_ID);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ verifyZeroInteractions(componentInstanceChangeOperation3);
+ }
+
+ @Test
+ public void doOnDeleteInstanceOperations_whenLastPostOperationFails_returnTheFailureResult() {
+ when(componentInstanceChangeOperation1.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation3.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.GENERAL_ERROR);
+ ActionStatus actionStatus = testInstance.doOnDeleteInstanceOperations(CONTAINER, DELETED_INS_ID);
+ assertThat(actionStatus).isEqualTo(ActionStatus.GENERAL_ERROR);
+ }
+
+ @Test
+ public void doOnDeleteInstanceOperations_whenAllOperationsSucceeds_returnOk() {
+ when(componentInstanceChangeOperation1.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation2.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ when(componentInstanceChangeOperation3.onDelete(CONTAINER, DELETED_INS_ID)).thenReturn(ActionStatus.OK);
+ ActionStatus actionStatus = testInstance.doOnDeleteInstanceOperations(CONTAINER, DELETED_INS_ID);
+ assertThat(actionStatus).isEqualTo(ActionStatus.OK);
+ }
+} \ No newline at end of file