package org.onap.vid.job.command; import com.google.common.collect.ImmutableMap; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.onap.vid.asdc.AsdcCatalogException; import org.onap.vid.model.GroupProperties; import org.onap.vid.model.ServiceModel; import org.onap.vid.model.VfModule; import org.onap.vid.services.VidService; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.util.Collections; import java.util.Map; import java.util.UUID; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.mockito.Mockito.*; public class CommandUtilsTest { @InjectMocks CommandUtils commandUtils; @Mock VidService vidService; @BeforeClass public void initMocks() { MockitoAnnotations.initMocks(this); } @AfterMethod public void resetVidService() { reset(vidService); } @DataProvider public static Object[][] trueAndFalse() { return new Object[][]{ {true}, {false} }; } @Test(dataProvider="trueAndFalse") void testIsVfModelIsBaseModule(boolean isBase) throws AsdcCatalogException { final String serviceModelUuid = UUID.randomUUID().toString(); final String vfModuleUuid = UUID.randomUUID().toString(); ServiceModel mockedServiceModel = mock(ServiceModel.class); VfModule mockedVfModule = mock(VfModule.class); GroupProperties mockedGroupProperties = mock(GroupProperties.class); Map vfModulesMap = ImmutableMap.of(randomAlphanumeric(10), mockedVfModule); when(vidService.getService(serviceModelUuid)).thenReturn(mockedServiceModel); when(mockedServiceModel.getVfModules()).thenReturn(vfModulesMap); when(mockedVfModule.getUuid()).thenReturn(vfModuleUuid); when(mockedVfModule.getProperties()).thenReturn(mockedGroupProperties); when(mockedGroupProperties.getBaseModule()).thenReturn(isBase); assertThat(commandUtils.isVfModuleBaseModule(serviceModelUuid, vfModuleUuid), equalTo(isBase)); } @Test(expectedExceptions = AsdcCatalogException.class) void whenCantFindModelInSdc_thenExceptionIsThrown() throws AsdcCatalogException { String serviceModelUuid = UUID.randomUUID().toString(); when(vidService.getService(serviceModelUuid)).thenReturn(null); commandUtils.isVfModuleBaseModule(serviceModelUuid, "abc"); } @Test(expectedExceptions = AsdcCatalogException.class) void whenCantFindVfModuleInModel_thenExceptionIsThrown() throws AsdcCatalogException { String serviceModelUuid = UUID.randomUUID().toString(); ServiceModel mockedServiceModel = mock(ServiceModel.class); Map emptyMap = Collections.emptyMap(); when(vidService.getService(serviceModelUuid)).thenReturn(mockedServiceModel); when(mockedServiceModel.getVfModules()).thenReturn(emptyMap); commandUtils.isVfModuleBaseModule(serviceModelUuid, "abc"); } }