From 093c624b2ce48ca8dbf55a9a8aaeee0315a8a7d6 Mon Sep 17 00:00:00 2001 From: Tal Gitelman Date: Wed, 16 May 2018 13:25:33 +0300 Subject: new unit tests for sdc-be Change-Id: I76050d7735d9d1b90b668138bbe9314c370e8748 Issue-ID: SDC-1333 Signed-off-by: Tal Gitelman --- .../PropertyDecelerationOrchestratorTest.java | 121 +++++++++++++++++++++ .../org/openecomp/sdc/test/utils/TestUtilsSdc.java | 24 ++++ 2 files changed, 145 insertions(+) create mode 100644 catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDecelerationOrchestratorTest.java create mode 100644 catalog-be/src/test/java/org/openecomp/sdc/test/utils/TestUtilsSdc.java (limited to 'catalog-be/src/test/java/org') 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 index 0000000000..4ead6bd9e0 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDecelerationOrchestratorTest.java @@ -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 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, 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 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> componentInstanceInputsMap = new HashMap<>(); + List 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> componentInstanceProperties = new HashMap<>(); + List 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> policyProperties = new HashMap<>(); + List 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 index 0000000000..74009dcb9c --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/test/utils/TestUtilsSdc.java @@ -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); + } +} -- cgit 1.2.3-korg