From e601bbdc43bae9a08e2e10c5139a6f76b47860d7 Mon Sep 17 00:00:00 2001 From: Einat Vinouze Date: Tue, 16 Jul 2019 17:17:36 +0300 Subject: Implant vid-app-common org.onap.vid.job (main and test) Issue-ID: VID-378 Change-Id: I41b0bdc2c4e3635f3f3319b1cd63cefc61912dfc Signed-off-by: Einat Vinouze Signed-off-by: Ittay Stern --- .../vid/job/command/InstanceGroupCommandTest.java | 71 +++++++++++++++------- 1 file changed, 49 insertions(+), 22 deletions(-) (limited to 'vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java') diff --git a/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java b/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java index b4a5c64f5..c68c5f754 100644 --- a/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,29 +20,35 @@ package org.onap.vid.job.command; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.only; -import static org.mockito.Mockito.same; -import static org.mockito.Mockito.verify; - import com.google.common.collect.ImmutableMap; -import java.util.Optional; +import org.apache.commons.beanutils.BeanUtils; import org.mockito.Answers; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.job.JobsBrokerService; import org.onap.vid.job.impl.JobSharedData; +import org.onap.vid.model.Action; import org.onap.vid.model.RequestReferencesContainer; import org.onap.vid.model.serviceInstantiation.InstanceGroup; import org.onap.vid.mso.RestMsoImplementation; import org.onap.vid.mso.model.ModelInfo; import org.onap.vid.services.AsyncInstantiationBusinessLogic; -import org.onap.vid.testUtils.TestUtils; import org.springframework.http.HttpMethod; import org.testng.annotations.BeforeMethod; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.util.Optional; +import java.util.Set; + +import static java.util.function.Function.identity; +import static java.util.stream.Collectors.toMap; +import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + public class InstanceGroupCommandTest { @Mock(answer = Answers.RETURNS_MOCKS) @@ -53,11 +59,20 @@ public class InstanceGroupCommandTest { @Mock(answer = Answers.RETURNS_MOCKS) MsoResultHandlerService msoResultHandlerService; + @Mock(answer = Answers.RETURNS_MOCKS) + MsoRequestBuilder msoRequestBuilder; + @Mock WatchChildrenJobsBL watchChildrenJobsBL; @Mock(answer = Answers.RETURNS_MOCKS) AsyncInstantiationBusinessLogic asyncInstantiationBL; + @Mock(answer = Answers.RETURNS_MOCKS) + JobsBrokerService jobsBrokerService; + + @Mock(answer = Answers.RETURNS_MOCKS) + JobAdapter jobAdapter; + @Mock InProgressStatusService inProgressStatusService; @InjectMocks @@ -68,29 +83,41 @@ public class InstanceGroupCommandTest { command = null; MockitoAnnotations.initMocks(this); } - - @Test - public void createMyself_callsMso() { - final ModelInfo serviceModelInfo = setStrings(new ModelInfo()); + @DataProvider + public static Object[][] testApis() { + return new Object[][]{ + {"VNF_API"}, {null}}; + } + @Test(dataProvider = "testApis") + public void createMyself_callsMso(String testApi) { + final ModelInfo serviceModelInfo = setRandomStrings(new ModelInfo()); final String serviceInstanceId = "service-instance-id"; final String userId = "ff3223"; - command.init(new JobSharedData( - null, userId, instanceGroupRequest - ), ImmutableMap.of( + when(instanceGroupRequest.getAction()).thenReturn(Action.Delete); + + JobSharedData sharedData = new JobSharedData( + null, userId, instanceGroupRequest, testApi); + command.init(sharedData, ImmutableMap.of( "resourceModelInfos", ImmutableMap.of("SERVICE_MODEL_INFO", serviceModelInfo), "resourceInstancesIds", ImmutableMap.of("SERVICE_INSTANCE_ID", serviceInstanceId) )); command.createMyself(); - verify(asyncInstantiationBL).generateInstanceGroupInstantiationRequest( - same(instanceGroupRequest), eq(serviceModelInfo), eq(serviceInstanceId), eq(userId)); + verify(msoRequestBuilder).generateInstanceGroupInstantiationRequest( + same(instanceGroupRequest), eq(serviceModelInfo), eq(serviceInstanceId), eq(userId), eq(testApi)); verify(restMso, only()).restCall(eq(HttpMethod.POST), eq(RequestReferencesContainer.class), any(), any(), eq(Optional.empty())); - } - private ModelInfo setStrings(ModelInfo object) { - return TestUtils.setStringsInStringProperties(object); + private ModelInfo setRandomStrings(ModelInfo object) { + try { + Set fields = BeanUtils.describe(object).keySet(); + BeanUtils.populate(object, + fields.stream().collect(toMap(identity(), s -> randomAlphanumeric(4)))); + return object; + } catch (Exception e) { + throw new RuntimeException(e); + } } } -- cgit 1.2.3-korg