package org.onap.vid.mso;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.tuple;
import io.joshworks.restclient.http.HttpResponse;
import java.io.IOException;
import java.net.URL;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import org.onap.vid.mso.model.ModelInfo;
import org.onap.vid.mso.model.OperationalEnvironmentActivateInfo;
import org.onap.vid.mso.model.OperationalEnvironmentDeactivateInfo;
-import org.onap.vid.mso.model.RequestInfo;
import org.onap.vid.mso.model.RequestParameters;
import org.onap.vid.mso.rest.OperationalEnvironment.OperationEnvironmentRequestDetails;
import org.onap.vid.mso.rest.Request;
import org.onap.vid.mso.rest.RequestDetails;
import org.onap.vid.mso.rest.RequestDetailsWrapper;
import org.onap.vid.mso.rest.Task;
+import org.onap.vid.testUtils.TestUtils;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.test.context.ContextConfiguration;
public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests {
private static final ObjectMapper objectMapper = new ObjectMapper();
+ private static final String MY_PRETTY_URL = "my pretty url";
@Mock
private MsoInterface msoInterface;
public void shouldProperlyCreateSvcInstanceWithProperParameters() {
MsoResponseWrapper expectedResponse = createOkResponse();
- String svcEndpoint = SystemProperties.getProperty(MsoProperties.MSO_REST_API_SVC_INSTANCE);
+ String svcEndpoint = SystemProperties.getProperty(MsoProperties.MSO_RESTAPI_SERVICE_INSTANCE);
given(msoInterface.createSvcInstance(msoRequest, svcEndpoint)).willReturn(expectedResponse);
MsoResponseWrapper response = msoBusinessLogic.createSvcInstance(msoRequest);
public void shouldProperlyGetActivateFabricConfigurationPathWithProperParameters() {
// given
String serviceInstanceId = "testServiceId";
- String path = validateEndpointPath(MsoProperties.MSO_REST_API_SERVICE_INSTANCE_CREATE);
+ String path = validateEndpointPath(MsoProperties.MSO_RESTAPI_SERVICE_INSTANCE);
path += "/" + serviceInstanceId + "/activateFabricConfiguration";
// when
@Test
public void shouldProperlyGetDeactivateAndCloudDeletePathWithProperParameters() {
- // given
- String serviceInstanceId = "testServiceId";
- String vnfInstanceId = "testVnfInstanceId";
- String vfModuleInstanceId = "testVfModuleInstanceId";
- String path = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE);
- path = path.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId);
- path = path.replaceFirst(VNF_INSTANCE_ID, vnfInstanceId);
- path += "/" + vfModuleInstanceId + "/deactivateAndCloudDelete";
// when
- String response = msoBusinessLogic.getDeactivateAndCloudDeletePath(serviceInstanceId, vnfInstanceId, vfModuleInstanceId);
+ String response = msoBusinessLogic.getDeactivateAndCloudDeletePath("testServiceId", "testVnfInstanceId", "testVfModuleInstanceId");
// then
- assertThat(response).isEqualTo(path);
+ String expectedPath = "/serviceInstantiation/v7/serviceInstances/testServiceId/vnfs/testVnfInstanceId/"+
+ "vfModules/testVfModuleInstanceId/deactivateAndCloudDelete";
+ assertThat(response).isEqualTo(expectedPath);
}
@Test
- public void shouldProperlyBuildRequestDetailsForSoftDeleteWithProperParameters() {
- // given
- SoftDeleteRequest softDeleteRequest = new SoftDeleteRequest();
- RequestDetails requestDetails = new RequestDetails();
-
- String userId = "testUserID";
- String tenantId = "testTenantId ";
- String cloudRegionId = "testCloudId";
-
-
- RequestInfo requestInfo = new RequestInfo();
- requestInfo.setSource("VID");
- requestInfo.setRequestorId(userId);
- requestDetails.setRequestInfo(requestInfo);
-
- CloudConfiguration cloudConfiguration = new CloudConfiguration();
- cloudConfiguration.setTenantId(tenantId);
- cloudConfiguration.setLcpCloudRegionId(cloudRegionId);
- requestDetails.setCloudConfiguration(cloudConfiguration);
-
- setModelInfoForRequestDetails(requestDetails);
-
- setRequestParametersForRequestDetails(requestDetails);
-
- softDeleteRequest.setLcpCloudRegionId(cloudRegionId);
- softDeleteRequest.setTenantId(tenantId);
- softDeleteRequest.setUserId(userId);
-
- // when
- RequestDetails response = msoBusinessLogic.buildRequestDetailsForSoftDelete(softDeleteRequest);
-
- // then
- assertThat(response).isEqualTo(requestDetails);
+ public void shouldProperlyBuildRequestDetailsForSoftDeleteWithProperParameters() throws IOException {
+ SoftDeleteRequest request = new SoftDeleteRequest("testTenantId", "testCloudId", "testUserID");
+ String expected = IOUtils.toString(this.getClass().getResource("/payload_jsons/vfModuleDeactivateAndCloudDelete.json"), "UTF-8");
+ final RequestDetails result = msoBusinessLogic.buildRequestDetailsForSoftDelete(request);
+ MatcherAssert.assertThat(result, jsonEquals(expected));
}
private void setRequestParametersForRequestDetails(RequestDetails requestDetails) {
private HttpResponse<String> mockForGetOrchestrationRequest() {
HttpResponse<String> httpResponse = mock(HttpResponse.class);
- HttpResponseWithRequestInfo<String> httpResponseWithRequestInfo = new HttpResponseWithRequestInfo<>(httpResponse, "my pretty url", HttpMethod.GET);
+ HttpResponseWithRequestInfo<String> httpResponseWithRequestInfo = new HttpResponseWithRequestInfo<>(httpResponse, MY_PRETTY_URL, HttpMethod.GET);
when(msoInterface.getOrchestrationRequest(any(String.class),anyBoolean()))
.thenReturn(httpResponseWithRequestInfo);
return httpResponse;
HttpResponse<String> httpResponse = mockForGetOrchestrationRequest();
when(httpResponse.getStatus()).thenReturn(statusCode);
when(httpResponse.getBody()).thenReturn(body);
- try {
- when(httpResponse.getRawBody()).thenReturn(IOUtils.toInputStream(body, StandardCharsets.UTF_8.name()));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ TestUtils.mockGetRawBodyWithStringBody(httpResponse, body);
return httpResponse;
}
final ExternalComponentStatus msoStatus = msoBusinessLogic.probeComponent();
assertMsoStatus(msoStatus, true);
- assertMetadata(msoStatus, 200, startsWith(responseString.substring(0, 400)), "my pretty url", equalTo("OK"));
+ assertMetadata(msoStatus, 200, startsWith(responseString.substring(0, 400)), MY_PRETTY_URL, equalTo("OK"));
}
@Test
assertMsoStatus(msoStatus, true);
- assertMetadata(msoStatus, 200, equalTo(responseString), "my pretty url", containsString("OK"));
+ assertMetadata(msoStatus, 200, equalTo(responseString), MY_PRETTY_URL, containsString("OK"));
}
@Test
assertMsoStatus(msoStatus, false);
- assertMetadata(msoStatus, 200, equalTo(responseString), "my pretty url", containsString("JsonParseException: Unrecognized token"));
+ assertMetadata(msoStatus, 200, equalTo(responseString), MY_PRETTY_URL, containsString("JsonParseException: Unrecognized token"));
}
@Test
String responseString = "my raw data";
when(msoInterface.getOrchestrationRequest(any(), eq(true))).thenThrow(
- new ExceptionWithRequestInfo(HttpMethod.GET, "my pretty url", responseString, 406,
+ new ExceptionWithRequestInfo(HttpMethod.GET, MY_PRETTY_URL, responseString, 406,
new GenericUncheckedException(
new HttpException("Simulating as 406 was returned (200 or 202 expected)"))));
assertMsoStatus(msoStatus, false);
- assertMetadata(msoStatus, 406, equalTo(responseString), "my pretty url", containsString("HttpException: Simulating as 406 was returned"));
+ assertMetadata(msoStatus, 406, equalTo(responseString), MY_PRETTY_URL, containsString("HttpException: Simulating as 406 was returned"));
}