aboutsummaryrefslogtreecommitdiffstats
path: root/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common
diff options
context:
space:
mode:
Diffstat (limited to 'mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common')
-rw-r--r--mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/AllTestsTestSuite.java33
-rw-r--r--mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaClientTest.java166
-rw-r--r--mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaTaskClientTest.java139
-rw-r--r--mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/ResponseHandlerTest.java139
4 files changed, 477 insertions, 0 deletions
diff --git a/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/AllTestsTestSuite.java b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/AllTestsTestSuite.java
new file mode 100644
index 0000000000..47c166eff9
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/AllTestsTestSuite.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.apihandler.common;
+
+import org.junit.runner.RunWith;
+
+import com.googlecode.junittoolbox.SuiteClasses;
+import com.googlecode.junittoolbox.WildcardPatternSuite;
+
+@RunWith(WildcardPatternSuite.class)
+@SuiteClasses("**/*Test.class")
+public class AllTestsTestSuite {
+ // the class remains empty,
+ // used only as a holder for the above annotations
+}
diff --git a/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaClientTest.java b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaClientTest.java
new file mode 100644
index 0000000000..d7052762ab
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaClientTest.java
@@ -0,0 +1,166 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.apihandler.common;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.ProtocolVersion;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.message.BasicHttpResponse;
+import org.apache.http.message.BasicStatusLine;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.so.apihandler.common.CamundaClient;
+import org.onap.so.apihandler.common.CommonConstants;
+import org.onap.so.apihandler.common.RequestClient;
+import org.onap.so.apihandler.common.RequestClientFactory;
+import org.springframework.mock.env.MockEnvironment;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+
+
+/**
+ * This class implements test methods of Camunda Beans.
+ *
+ *
+ */
+public class CamundaClientTest{
+
+
+
+ @Mock
+ private HttpClient mockHttpClient;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void tesCamundaPost() throws JsonGenerationException,
+ JsonMappingException, IOException {
+
+
+ String responseBody ="{\"links\":[{\"method\":\"GET\",\"href\":\"http://localhost:9080/engine-rest/process-instance/2047c658-37ae-11e5-9505-7a1020524153\",\"rel\":\"self\"}],\"id\":\"2047c658-37ae-11e5-9505-7a1020524153\",\"definitionId\":\"dummy:10:73298961-37ad-11e5-9505-7a1020524153\",\"businessKey\":null,\"caseInstanceId\":null,\"ended\":true,\"suspended\":false}";
+
+ HttpResponse mockResponse = createResponse(200, responseBody);
+ mockHttpClient = Mockito.mock(HttpClient.class);
+ Mockito.when(mockHttpClient.execute(Mockito.any(HttpPost.class)))
+ .thenReturn(mockResponse);
+
+ String reqXML = "<xml>test</xml>";
+ String orchestrationURI = "/engine-rest/process-definition/key/dummy/start";
+ MockEnvironment environment = new MockEnvironment();
+
+ environment.setProperty("mso.camundaUR", "yourValue1");
+
+
+ RequestClientFactory reqClientFactory = new RequestClientFactory();
+ reqClientFactory.setEnv(environment);
+ RequestClient requestClient = reqClientFactory.getRequestClient(orchestrationURI);
+
+ requestClient.setClient(mockHttpClient);
+ HttpResponse response = requestClient.post(reqXML, "reqId", "timeout", "version", null, null);
+
+
+ int statusCode = response.getStatusLine().getStatusCode();
+ assertEquals(requestClient.getType(), CommonConstants.CAMUNDA);
+ assertEquals(statusCode, HttpStatus.SC_OK);
+
+
+ requestClient = reqClientFactory.getRequestClient(orchestrationURI);
+ requestClient.setClient(mockHttpClient);
+ response = requestClient.post(null, "reqId", null, null, null, null);
+ assertEquals(requestClient.getType(), CommonConstants.CAMUNDA);
+ assertEquals(statusCode, HttpStatus.SC_OK);
+ }
+
+ private HttpResponse createResponse(int respStatus,
+ String respBody) {
+ HttpResponse response = new BasicHttpResponse(
+ new BasicStatusLine(
+ new ProtocolVersion("HTTP", 1, 1), respStatus, ""));
+ response.setStatusCode(respStatus);
+ try {
+ response.setEntity(new StringEntity(respBody));
+ response.setHeader("Content-Type", "application/json");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response;
+ }
+
+ public String inputStream(String JsonInput)throws IOException{
+ JsonInput = "src/test/resources/CamundaClientTest" + JsonInput;
+ String input = new String(Files.readAllBytes(Paths.get(JsonInput)));
+ return input;
+ }
+
+ @Test
+ public void wrapVIDRequestTest() throws IOException{
+ CamundaClient testClient = new CamundaClient();
+ testClient.setUrl("/mso/async/services/CreateGenericALaCarteServiceInstance");
+
+ String requestId = "f7ce78bb-423b-11e7-93f8-0050569a796";
+ boolean isBaseVfModule = true;
+ int recipeTimeout = 10000;
+ String requestAction = "createInstance";
+ String serviceInstanceId = "12345679";
+ String correlationId = "12345679";
+ String vnfId = "234567891";
+ String vfModuleId = "345678912";
+ String volumeGroupId = "456789123";
+ String networkId = "567891234";
+ String configurationId = "678912345";
+ String serviceType = "testService";
+ String vnfType = "testVnf";
+ String vfModuleType = "vfModuleType";
+ String networkType = "networkType";
+ String requestDetails = "{requestDetails: }";
+ String apiVersion = "6";
+ boolean aLaCarte = true;
+ String requestUri = "v7/serviceInstances/assign";
+
+ String testResult = testClient.wrapVIDRequest(requestId, isBaseVfModule, recipeTimeout, requestAction, serviceInstanceId, correlationId,
+ vnfId, vfModuleId, volumeGroupId, networkId, configurationId, serviceType,
+ vnfType, vfModuleType, networkType, requestDetails, apiVersion, aLaCarte, requestUri, "");
+ String expected = inputStream("/WrappedVIDRequest.json");
+
+ assertEquals(expected, testResult);
+ }
+
+
+
+
+}
diff --git a/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaTaskClientTest.java b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaTaskClientTest.java
new file mode 100644
index 0000000000..69772ee7e6
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/CamundaTaskClientTest.java
@@ -0,0 +1,139 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.apihandler.common;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.so.apihandler.common.CamundaTaskClient;
+import org.onap.so.apihandler.common.CommonConstants;
+import org.onap.so.apihandler.common.RequestClientParameter;
+import org.springframework.core.env.Environment;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CamundaTaskClientTest {
+
+ @Mock
+ private Environment env;
+ private CamundaTaskClient testedObject = new CamundaTaskClient();
+ private HttpClient httpClientMock;
+ private static final String JSON_REQUEST = "{\"value1\": \"aaa\",\"value2\": \"bbb\"}";
+ private static final String URL_SCHEMA = "http";
+ private static final String HOST = "testhost";
+ private static final int PORT = 1234;
+ private static final String URL_PATH = "/requestMethodSuccessful";
+ private static final String URL = URL_SCHEMA + "://" + HOST + ":" + PORT + URL_PATH;
+ private static final String AUTHORIZATION_HEADER_NAME = "Authorization";
+
+ @Before
+ public void init() {
+ when(env.getProperty(eq(CommonConstants.CAMUNDA_AUTH))).thenReturn("");
+ testedObject = new CamundaTaskClient();
+ httpClientMock = mock(HttpClient.class);
+ testedObject.setClient(httpClientMock);
+ testedObject.setUrl(URL);
+ }
+
+ @Test
+ public void postMethodSuccessful() throws IOException {
+ ArgumentCaptor<HttpPost> httpPostCaptor = ArgumentCaptor.forClass(HttpPost.class);
+ testedObject.post(JSON_REQUEST);
+ verify(httpClientMock).execute(httpPostCaptor.capture());
+ checkUri(httpPostCaptor.getValue());
+ assertThat(httpPostCaptor.getValue().getEntity().getContentType().getValue()).
+ isEqualTo(CommonConstants.CONTENT_TYPE_JSON);
+ assertThat(getJsonFromEntity(httpPostCaptor.getValue().getEntity())).isEqualTo(JSON_REQUEST);
+ }
+
+ @Test
+ public void postMethodSuccessfulWithCredentials() throws IOException {
+ ArgumentCaptor<HttpPost> httpPostCaptor = ArgumentCaptor.forClass(HttpPost.class);
+ testedObject.setProps(env);
+ testedObject.post(JSON_REQUEST);
+ verify(httpClientMock).execute(httpPostCaptor.capture());
+ assertThat(httpPostCaptor.getValue().getHeaders(AUTHORIZATION_HEADER_NAME)).isNotEmpty();
+ }
+
+ @Test
+ public void getMethodSuccessful() throws IOException {
+ ArgumentCaptor<HttpGet> httpGetCaptor = ArgumentCaptor.forClass(HttpGet.class);
+ testedObject.get();
+ verify(httpClientMock).execute(httpGetCaptor.capture());
+ checkUri(httpGetCaptor.getValue());
+ }
+
+ @Test
+ public void getMethodSuccessfulWithCredentials() throws IOException {
+ ArgumentCaptor<HttpGet> httpGetCaptor = ArgumentCaptor.forClass(HttpGet.class);
+ testedObject.setUrl(URL);
+ testedObject.setProps(env);
+ testedObject.get();
+ verify(httpClientMock).execute(httpGetCaptor.capture());
+ assertThat(httpGetCaptor.getValue().getHeaders(AUTHORIZATION_HEADER_NAME)).isNotEmpty();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void postMethodUnsupported() {
+ testedObject.post("", "", "", "", "", "");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void postMethodUnsupported2() {
+ testedObject.post(new RequestClientParameter.Builder().build());
+ }
+
+ private void checkUri(HttpRequestBase httpRequestBase) {
+ assertThat(httpRequestBase.getURI().getScheme()).isEqualTo(URL_SCHEMA);
+ assertThat(httpRequestBase.getURI().getHost()).isEqualTo(HOST);
+ assertThat(httpRequestBase.getURI().getPort()).isEqualTo(PORT);
+ assertThat(httpRequestBase.getURI().getPath()).isEqualTo(URL_PATH);
+ }
+
+ private String getJsonFromEntity(HttpEntity httpEntity) throws IOException {
+ BufferedReader rd = new BufferedReader(
+ new InputStreamReader(httpEntity.getContent()));
+ StringBuilder result = new StringBuilder();
+ String line;
+ while ((line = rd.readLine()) != null) {
+ result.append(line);
+ }
+ return result.toString();
+ }
+
+} \ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/ResponseHandlerTest.java b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/ResponseHandlerTest.java
new file mode 100644
index 0000000000..7bb054c297
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/common/ResponseHandlerTest.java
@@ -0,0 +1,139 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.apihandler.common;
+
+
+import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.startsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.ProtocolVersion;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.message.BasicHttpResponse;
+import org.apache.http.message.BasicStatusLine;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onap.so.apihandler.common.ErrorNumbers;
+import org.onap.so.apihandler.common.ResponseHandler;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import org.onap.so.apihandlerinfra.exceptions.ApiException;
+import org.onap.so.apihandlerinfra.exceptions.BPMNFailureException;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+
+/**
+ * This class implements test methods of CamundaResoponseHandler.
+ *
+ *
+ */
+public class ResponseHandlerTest{
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Test
+ public void tesParseCamundaResponse () throws ApiException {
+ // String body
+ // ="{\"links\":[{\"method\":\"GET\",\"href\":\"http://localhost:9080/engine-rest/process-instance/2047c658-37ae-11e5-9505-7a1020524153\",\"rel\":\"self\"}],\"id\":\"2047c658-37ae-11e5-9505-7a1020524153\",\"definitionId\":\"dummy:10:73298961-37ad-11e5-9505-7a1020524153\",\"businessKey\":null,\"caseInstanceId\":null,\"ended\":true,\"suspended\":false}";
+
+ String body = "{ \"response\": \"<xml>xml</xml>\"," + "\"messageCode\": 200,"
+ + "\"message\": \"Successfully started the process\"}";
+
+ HttpResponse response = createResponse (200, body, "application/json");
+
+ ResponseHandler respHandler = new ResponseHandler (response, 1);
+
+ int status = respHandler.getStatus ();
+ assertEquals (status, HttpStatus.SC_ACCEPTED);
+ assertEquals (respHandler.getResponse ().getMessage (), "Successfully started the process");
+
+ }
+
+ @Test
+ public void tesParseBpelResponse () throws ApiException{
+ String body = "<test:service-response xmlns:test=\"http://org.onap/so/test\">"
+ + "<test:request-id>req5</test:request-id>"
+ + "<test:request-action>test</test:request-action>"
+ + "<test:source>test</test:source>"
+ + "<test:ack-final-indicator>n</test:ack-final-indicator>"
+ + "</test:service-response>";
+
+ HttpResponse response = createResponse (200, body, "text/xml");
+
+ ResponseHandler respHandler = new ResponseHandler (response, 0);
+
+ int status = respHandler.getStatus ();
+ assertEquals (status, HttpStatus.SC_ACCEPTED);
+ assertTrue (respHandler.getResponseBody () != null);
+ }
+
+ @Test
+ public void tesMappingErrorResponse () throws ApiException {
+ thrown.expect(ValidateException.class);
+ thrown.expectMessage(startsWith("JSON Object Mapping Request"));
+ thrown.expect(hasProperty("httpResponseCode", is(HttpStatus.SC_BAD_REQUEST)));
+ thrown.expect(hasProperty("messageID", is(ErrorNumbers.SVC_BAD_PARAMETER)));
+
+ HttpResponse response = createResponse (HttpStatus.SC_NOT_FOUND, "<html>error</html>", "text/html");
+ ResponseHandler respHandler = new ResponseHandler (response, 1);
+
+ int status = respHandler.getStatus ();
+
+ assertEquals (HttpStatus.SC_NOT_IMPLEMENTED, status);
+
+ }
+
+ @Test
+ public void tesGenricErrorResponse () throws ApiException {
+
+ String body = "{ \"response\": \"<xml>xml</xml>\"," + "\"messageCode\": 500,"
+ + "\"message\": \"Something went wrong\"}";
+
+ HttpResponse response = createResponse (500, body, "application/json");
+ ResponseHandler respHandler = new ResponseHandler (response, 1);
+ int status = respHandler.getStatus ();
+ assertEquals (status, HttpStatus.SC_BAD_GATEWAY);
+ assertEquals (respHandler.getResponse ().getMessage (), "Something went wrong");
+ }
+
+ private HttpResponse createResponse (int respStatus, String respBody, String contentType) {
+ HttpResponse response = new BasicHttpResponse (new BasicStatusLine (new ProtocolVersion ("HTTP", 1, 1),
+ respStatus,
+ ""));
+ response.setStatusCode (respStatus);
+ try {
+ response.setEntity (new StringEntity (respBody));
+ response.setHeader ("Content-Type", contentType);
+ } catch (Exception e) {
+ e.printStackTrace ();
+ }
+ return response;
+ }
+
+}