diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/GlobalInputsFilteringBusinessLogicTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/GlobalInputsFilteringBusinessLogicTest.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/GlobalInputsFilteringBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/GlobalInputsFilteringBusinessLogicTest.java new file mode 100644 index 0000000000..ab2e865ae0 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/GlobalInputsFilteringBusinessLogicTest.java @@ -0,0 +1,86 @@ +package org.openecomp.sdc.be.components.merge; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +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.components.impl.generic.GenericTypeBusinessLogic; +import org.openecomp.sdc.be.components.utils.ObjectGenerator; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; + +import com.google.common.collect.Sets; + +import fj.data.Either; + +public class GlobalInputsFilteringBusinessLogicTest { + + private static final String GENERIC_TOSCA_TYPE = "myGenericType"; + + @InjectMocks + private GlobalInputsFilteringBusinessLogic testInstance; + + @Mock + private GenericTypeBusinessLogic genericTypeBusinessLogicMock; + + @Mock + private ToscaOperationFacade toscaOperationFacadeMock; + + @Mock + private ComponentsUtils componentsUtils; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testFilterGlobalInputs() throws Exception { + Resource mockResource = Mockito.mock(Resource.class); + String myGenericType = GENERIC_TOSCA_TYPE; + String[] genericProperties = {"property1", "property2"}; + String[] allInputs = {"property1", "property2", "property3", "property4"}; + when(mockResource.fetchGenericTypeToscaNameFromConfig()).thenReturn(myGenericType); + when(mockResource.getInputs()).thenReturn(ObjectGenerator.buildInputs(allInputs)); + Resource genericNodeType = ObjectGenerator.buildResourceWithProperties(genericProperties); + when(toscaOperationFacadeMock.getLatestCertifiedNodeTypeByToscaResourceName(myGenericType)).thenReturn(Either.left(genericNodeType)); + when(genericTypeBusinessLogicMock.generateInputsFromGenericTypeProperties(genericNodeType)).thenReturn(ObjectGenerator.buildInputs(genericProperties)); + Either<List<InputDefinition>, ActionStatus> globalInputsEither = testInstance.filterGlobalInputs(mockResource); + verifyFilteredOnlyGlobalInputs(globalInputsEither, genericProperties); + } + + @Test + public void testFilterGlobalInputs_errorGettingGenericType_convertToActionStatusAndReturn() throws Exception { + Resource mockResource = Mockito.mock(Resource.class); + when(mockResource.fetchGenericTypeToscaNameFromConfig()).thenReturn(GENERIC_TOSCA_TYPE); + when(toscaOperationFacadeMock.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_TOSCA_TYPE)).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.GENERAL_ERROR)).thenReturn(ActionStatus.GENERAL_ERROR); + Either<List<InputDefinition>, ActionStatus> globalInputsEither = testInstance.filterGlobalInputs(mockResource); + assertTrue(globalInputsEither.isRight()); + assertEquals(ActionStatus.GENERAL_ERROR, globalInputsEither.right().value()); + verifyZeroInteractions(genericTypeBusinessLogicMock); + } + + private void verifyFilteredOnlyGlobalInputs(Either<List<InputDefinition>, ActionStatus> globalInputsEither, String[] genericProperties) { + assertTrue(globalInputsEither.isLeft()); + List<InputDefinition> globalInputs = globalInputsEither.left().value(); + assertEquals(2, globalInputs.size()); + Set<String> actualGlobalInputNames = globalInputs.stream().map(InputDefinition::getName).collect(Collectors.toSet()); + assertEquals(Sets.newHashSet(genericProperties), actualGlobalInputNames); + } +}
\ No newline at end of file |