new unit tests for sdc-be 87/47787/3
authorTal Gitelman <tg851x@intl.att.com>
Wed, 16 May 2018 10:25:33 +0000 (13:25 +0300)
committerMichael Lando <ml636r@att.com>
Wed, 16 May 2018 14:15:19 +0000 (14:15 +0000)
Change-Id: I76050d7735d9d1b90b668138bbe9314c370e8748
Issue-ID: SDC-1333
Signed-off-by: Tal Gitelman <tg851x@intl.att.com>
catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDecelerationOrchestratorTest.java [new file with mode: 0644]
catalog-be/src/test/java/org/openecomp/sdc/test/utils/TestUtilsSdc.java [new file with mode: 0644]

diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDecelerationOrchestratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDecelerationOrchestratorTest.java
new file mode 100644 (file)
index 0000000..4ead6bd
--- /dev/null
@@ -0,0 +1,121 @@
+package org.openecomp.sdc.be.components.property;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.ComponentInstInputsMap;
+import org.openecomp.sdc.be.model.ComponentInstancePropInput;
+import org.openecomp.sdc.be.model.InputDefinition;
+import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.test.utils.TestUtilsSdc;
+import org.slf4j.LoggerFactory;
+
+import fj.data.Either;
+import mockit.Deencapsulation;
+
+public class PropertyDecelerationOrchestratorTest {
+
+       @InjectMocks
+       PropertyDecelerationOrchestrator testSubject;
+
+       @Mock
+       List<PropertyDecelerator> propertyDeceleratorsMock;
+       
+       @Mock
+       private ComponentInstanceInputPropertyDecelerator componentInstanceInputPropertyDecelerator;
+       @Mock
+       private ComponentInstancePropertyDecelerator componentInstancePropertyDecelerator;
+       @Mock
+       private PolicyPropertyDecelerator policyPropertyDecelerator;
+
+       @Before
+       public void setUp() throws Exception {
+
+               MockitoAnnotations.initMocks(this);
+               
+               TestUtilsSdc.setFinalStatic(testSubject.getClass(), "log", LoggerFactory.getLogger(testSubject.getClass()));
+       }
+
+       @Test(expected = IllegalStateException.class)
+       public void testDeclarePropertiesToInputs() throws Exception {
+               Component component = new Resource();
+               ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
+               Either<List<InputDefinition>, StorageOperationStatus> result;
+
+               // default test
+               result = testSubject.declarePropertiesToInputs(component, componentInstInputsMap);
+       }
+
+       @Test
+       public void testUnDeclarePropertiesAsInputs() throws Exception {
+               Component component = new Resource();
+               InputDefinition inputToDelete = new InputDefinition();
+               StorageOperationStatus result;
+
+               Iterator<PropertyDecelerator> mockIter = Mockito.mock(Iterator.class);
+               Mockito.when(propertyDeceleratorsMock.iterator()).thenReturn(mockIter);
+               Mockito.when(mockIter.hasNext()).thenReturn(false);
+               
+               // default test
+               result = testSubject.unDeclarePropertiesAsInputs(component, inputToDelete);
+       }
+
+       @Test(expected = IllegalStateException.class)
+       public void testGetPropertyDecelerator() throws Exception {
+               ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
+               PropertyDecelerator result;
+
+               // default test
+               result = Deencapsulation.invoke(testSubject, "getPropertyDecelerator", componentInstInputsMap);
+       }
+
+       @Test
+       public void testGetPropertyDeceleratorWithInputsMap() throws Exception {
+               ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
+               Map<String, List<ComponentInstancePropInput>> componentInstanceInputsMap = new HashMap<>();
+               List<ComponentInstancePropInput> value = new LinkedList<>();
+               componentInstanceInputsMap.put("mock", value);
+               componentInstInputsMap.setComponentInstanceInputsMap(componentInstanceInputsMap);
+               PropertyDecelerator result;
+
+               // default test
+               result = Deencapsulation.invoke(testSubject, "getPropertyDecelerator", componentInstInputsMap);
+       }
+
+       @Test
+       public void testGetPropertyDeceleratorWithCIProperties() throws Exception {
+               ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
+               Map<String, List<ComponentInstancePropInput>> componentInstanceProperties = new HashMap<>();
+               List<ComponentInstancePropInput> value = new LinkedList<>();
+               componentInstanceProperties.put("mock", value);
+               componentInstInputsMap.setComponentInstancePropInput(componentInstanceProperties);
+               PropertyDecelerator result;
+
+               // default test
+               result = Deencapsulation.invoke(testSubject, "getPropertyDecelerator", componentInstInputsMap);
+       }
+
+       @Test
+       public void testGetPropertyDeceleratorWithCIPolicy() throws Exception {
+               ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
+               Map<String, List<ComponentInstancePropInput>> policyProperties = new HashMap<>();
+               List<ComponentInstancePropInput> value = new LinkedList<>();
+               policyProperties.put("mock", value);
+               componentInstInputsMap.setPolicyProperties(policyProperties);
+               PropertyDecelerator result;
+
+               // default test
+               result = Deencapsulation.invoke(testSubject, "getPropertyDecelerator", componentInstInputsMap);
+       }
+}
\ No newline at end of file
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/test/utils/TestUtilsSdc.java b/catalog-be/src/test/java/org/openecomp/sdc/test/utils/TestUtilsSdc.java
new file mode 100644 (file)
index 0000000..74009dc
--- /dev/null
@@ -0,0 +1,24 @@
+package org.openecomp.sdc.test.utils;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+public class TestUtilsSdc {
+       /*
+        * Can be used to set the logger instance to overcome mockito limitation 
+        * private static final Logger log
+        * 
+        * TestUtilsSdc.setFinalStatic(testSubject.getClass(), "log", LoggerFactory.getLogger(testSubject.getClass()));
+        */
+       public static void setFinalStatic(Class targetClass, String fieldName, Object newValue) throws Exception {
+               Field field = targetClass.getDeclaredField("log");
+               field.setAccessible(true);
+
+               // remove final modifier from field
+               Field modifiersField = Field.class.getDeclaredField("modifiers");
+               modifiersField.setAccessible(true);
+               modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+
+               field.set(null, newValue);
+       }
+}