diff options
author | Einat Vinouze <einat.vinouze@intl.att.com> | 2019-07-16 17:17:36 +0300 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2019-07-30 06:01:44 +0300 |
commit | e601bbdc43bae9a08e2e10c5139a6f76b47860d7 (patch) | |
tree | 1913f0b369ead3f2ea5557e5649d8281eca9871c /vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java | |
parent | 76c6ee4a697617ec4cdee2f3b48bc83136c858c5 (diff) |
Implant vid-app-common org.onap.vid.job (main and test)
Issue-ID: VID-378
Change-Id: I41b0bdc2c4e3635f3f3319b1cd63cefc61912dfc
Signed-off-by: Einat Vinouze <einat.vinouze@intl.att.com>
Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java')
-rw-r--r-- | vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java | 83 |
1 files changed, 72 insertions, 11 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java b/vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java index c8772ee76..125d2ed4c 100644 --- a/vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/job/command/InProgressStatusServiceTest.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,8 +20,10 @@ package org.onap.vid.job.command; +import org.jetbrains.annotations.NotNull; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.onap.vid.job.Job; import org.onap.vid.job.impl.JobSharedData; @@ -29,11 +31,16 @@ import org.onap.vid.model.serviceInstantiation.ServiceInstantiation; import org.onap.vid.mso.RestMsoImplementation; import org.onap.vid.mso.RestObject; import org.onap.vid.mso.rest.AsyncRequestStatus; -import org.onap.vid.services.AsyncInstantiationBaseTest; +import org.onap.vid.properties.Features; import org.onap.vid.services.AsyncInstantiationBusinessLogic; +import org.onap.vid.services.AuditService; +import org.onap.vid.services.AsyncInstantiationBaseTest; +import org.onap.vid.testUtils.TestUtils; import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import org.togglz.core.manager.FeatureManager; import java.util.UUID; import java.util.stream.Stream; @@ -51,6 +58,12 @@ public class InProgressStatusServiceTest { @Mock private AsyncInstantiationBusinessLogic asyncInstantiationBL; + @Mock + private AuditService auditService; + + @Mock + private FeatureManager featureManager; + @InjectMocks private InProgressStatusService inProgressStatusService; @@ -59,10 +72,16 @@ public class InProgressStatusServiceTest { MockitoAnnotations.initMocks(this); } + @BeforeMethod + public void resetMocks() { + Mockito.reset(restMso); + Mockito.reset(asyncInstantiationBL); + } + @DataProvider public static Object[][] jobStatuses() { return Stream.of(Job.JobStatus.values()) - .map(student -> new Object[] { student }) + .map(status -> new Object[] { status }) .toArray(Object[][]::new); } @@ -71,16 +90,14 @@ public class InProgressStatusServiceTest { UUID jobUuid = UUID.randomUUID(); String userId = "mockedUserID"; + String testApi = "mockedTestApi"; String requestId = UUID.randomUUID().toString(); ServiceInstantiation serviceInstantiation = mock(ServiceInstantiation.class); when(asyncInstantiationBL.getOrchestrationRequestsPath()).thenReturn(""); - RestObject<AsyncRequestStatus> msoResponse = mock(RestObject.class); AsyncRequestStatus requestStatus = AsyncInstantiationBaseTest.asyncRequestStatusResponse(""); - - when(msoResponse.getStatusCode()).thenReturn(200); - when(msoResponse.get()).thenReturn(requestStatus); + RestObject<AsyncRequestStatus> msoResponse = createMockedAsyncRequestStatus(requestStatus, 200); when(restMso.GetForObject(contains(requestId), eq(AsyncRequestStatus.class))).thenReturn(msoResponse); when(asyncInstantiationBL.calcStatus(any())).thenReturn(expectedJobStatus); @@ -88,16 +105,60 @@ public class InProgressStatusServiceTest { ExpiryChecker expiryChecker = mock(ExpiryChecker.class); when(expiryChecker.isExpired(any())).thenReturn(false); - JobSharedData sharedData = new JobSharedData(jobUuid, userId, serviceInstantiation); + JobSharedData sharedData = new JobSharedData(jobUuid, userId, serviceInstantiation, testApi); Job.JobStatus actualJobStatus = inProgressStatusService.call(expiryChecker, sharedData, requestId); assertEquals(expectedJobStatus, actualJobStatus); - verify(asyncInstantiationBL).auditMsoStatus(eq(jobUuid), same(requestStatus.request)); - + verify(auditService).auditMsoStatus(eq(jobUuid), same(requestStatus.request)); + verify(asyncInstantiationBL).updateResourceInfo(eq(sharedData), eq(expectedJobStatus), eq(requestStatus)); //verify we don't update service info during this case, which shall stay in_progress verify(asyncInstantiationBL, never()).updateServiceInfo(any(), any()); + } + + @NotNull + protected RestObject<AsyncRequestStatus> createMockedAsyncRequestStatus(AsyncRequestStatus requestStatus, int statusCode) { + RestObject<AsyncRequestStatus> msoResponse = mock(RestObject.class); + when(msoResponse.getStatusCode()).thenReturn(statusCode); + when(msoResponse.get()).thenReturn(requestStatus); + return msoResponse; + } + + @Test(dataProvider = "trueAndFalse", dataProviderClass = TestUtils.class) + public void whenGetAsyncRequestStatus_thenRightResponseReturned(boolean isResumeFlagActive) { + String requestId = "abcRequest"; + String baseMso = "/fakeBase/v15"; + + when(asyncInstantiationBL.getOrchestrationRequestsPath()).thenReturn(baseMso); + when(featureManager.isActive(Features.FLAG_1908_RESUME_MACRO_SERVICE)).thenReturn(isResumeFlagActive); + + AsyncRequestStatus requestStatus = AsyncInstantiationBaseTest.asyncRequestStatusResponse(""); + RestObject<AsyncRequestStatus> mockedResponse = createMockedAsyncRequestStatus(requestStatus, 399); + String path = baseMso + "/" + requestId + (isResumeFlagActive ? "?format=detail" : ""); + when(restMso.GetForObject(eq(path), eq(AsyncRequestStatus.class))).thenReturn(mockedResponse); + + assertEquals(mockedResponse, inProgressStatusService.getAsyncRequestStatus(requestId)); + } + + @DataProvider + public static Object[][] getAsyncReturnErrorDataProvider() { + return new Object[][]{ + {AsyncInstantiationBaseTest.asyncRequestStatusResponse("xyz"), 400}, + {AsyncInstantiationBaseTest.asyncRequestStatusResponse("xyz"), 401}, + {AsyncInstantiationBaseTest.asyncRequestStatusResponse("xyz"), 500}, + {null, 200}, + }; + } + + @Test(dataProvider = "getAsyncReturnErrorDataProvider", expectedExceptions = InProgressStatusService.BadResponseFromMso.class) + public void whenGetAsyncReturnError_thenExceptionIsThrown(AsyncRequestStatus requestStatus, int statusCode) { + String requestId = "abcRequest"; + String baseMso = "/fakeBase/v15"; + when(asyncInstantiationBL.getOrchestrationRequestsPath()).thenReturn(baseMso); + RestObject<AsyncRequestStatus> mockedResponse = createMockedAsyncRequestStatus(requestStatus, statusCode); + when(restMso.GetForObject(eq(baseMso + "/" + requestId), eq(AsyncRequestStatus.class))).thenReturn(mockedResponse); + inProgressStatusService.getAsyncRequestStatus(requestId); } } |