diff options
author | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-30 15:56:09 -0400 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-31 11:09:25 -0400 |
commit | 5a6a6de6f1a26a1897e4917a0df613e25a24eb70 (patch) | |
tree | 59a968f27b4b603aacc9d5e7b51fb598aeec5321 /bpmn/MSORESTClient | |
parent | b6dc38501f3b746426b42d9de4cc883d894149e8 (diff) |
Containerization feature of SO
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18
Issue-ID: SO-670
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'bpmn/MSORESTClient')
16 files changed, 421 insertions, 258 deletions
diff --git a/bpmn/MSORESTClient/pom.xml b/bpmn/MSORESTClient/pom.xml index 6f2f007e5f..ee5bdff485 100644 --- a/bpmn/MSORESTClient/pom.xml +++ b/bpmn/MSORESTClient/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>org.onap.so</groupId> <artifactId>bpmn</artifactId> - <version>1.2.0-SNAPSHOT</version> + <version>1.3.0-SNAPSHOT</version> </parent> <artifactId>MSORESTClient</artifactId> diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/APIResponse.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java index d85a790841..b77c90b215 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/APIResponse.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; import java.io.IOException; import java.util.Arrays; diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HostNameVerifier.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java index ffef5f9385..3d10c0391d 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HostNameVerifier.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java @@ -19,12 +19,12 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; import javax.net.ssl.SSLException; import org.apache.http.conn.ssl.AbstractVerifier; -import org.openecomp.mso.logger.MsoLogger; +import org.onap.so.logger.MsoLogger; /** * @version 1.0 @@ -33,7 +33,7 @@ import org.openecomp.mso.logger.MsoLogger; */ public class HostNameVerifier extends AbstractVerifier { - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA); + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, HostNameVerifier.class); public final void verify( final String host, diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HttpHeader.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java index 79eea08dac..a96793334d 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HttpHeader.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; /** * An immutable class used to wrap an http header. diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTClient.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java index 3170e49371..fc6266d917 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTClient.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java @@ -8,9 +8,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. @@ -19,9 +19,8 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; -import java.io.Closeable; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; @@ -30,6 +29,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import javax.net.ssl.SSLSocketFactory; @@ -37,7 +37,7 @@ import javax.net.ssl.SSLSocketFactory; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPatch; @@ -54,13 +54,12 @@ import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.AbstractHttpMessage; import org.apache.http.util.EntityUtils; - -import org.openecomp.mso.logger.MsoLogger; +import org.onap.so.logger.MsoLogger; /** * Client used to send RESTFul requests. * <p> - * Many of the methods return a reference to the 'this,' thereby allowing - * method chaining. + * Many of the methods return a reference to the 'this,' thereby allowing + * method chaining. * <br> * An example of usage can be found below: * <pre> @@ -84,26 +83,28 @@ import org.openecomp.mso.logger.MsoLogger; * @since 1.0 */ public class RESTClient { - - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL); + + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,RESTClient.class); private final String proxyHost; private final int proxyPort; - private final String URL; + private final String url; + + private final Map<String, List<String>> headers; + private final Map<String, List<String>> parameters; + + - private final LinkedHashMap<String, List<String>> headers; - private final LinkedHashMap<String, List<String>> parameters; - private HttpEntity httpEntity; /** - * Internal method used to build an APIResponse using the specified + * Internal method used to build an APIResponse using the specified * HttpResponse object. * * @param response response wrapped inside an APIResponse object * @return api response */ - private APIResponse buildResponse(HttpResponse response) + private APIResponse buildResponse(HttpResponse response) throws RESTException { return new APIResponse(response); @@ -183,22 +184,17 @@ public class RESTClient { * @throws RESTException if unable to create http client. */ private CloseableHttpClient createClient() throws RESTException { - //TODO - we may want to trust self signed certificate at some point - add implementation here - HttpClientBuilder clientBuilder; - - try { + HttpClientBuilder clientBuilder; + try { SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory( (SSLSocketFactory) SSLSocketFactory.getDefault(), new HostNameVerifier()); Registry<ConnectionSocketFactory> registry = RegistryBuilder .<ConnectionSocketFactory> create() - .register("http", - PlainConnectionSocketFactory.getSocketFactory()) + .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", sslSocketFactory).build(); - PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager( - registry); - clientBuilder = HttpClientBuilder.create().setConnectionManager( - manager); + PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(registry); + clientBuilder = HttpClientBuilder.create().setConnectionManager(manager); } catch (Exception ex) { LOGGER.debug("Exception :", ex); throw new RESTException(ex.getMessage()); @@ -209,36 +205,43 @@ public class RESTClient { HttpHost proxy = new HttpHost(this.proxyHost, this.proxyPort); clientBuilder.setProxy(proxy); } - - return clientBuilder.build(); + int timeoutInSeconds = 300; + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(timeoutInSeconds * 1000) + .setConnectionRequestTimeout(timeoutInSeconds * 1000) + .setSocketTimeout(timeoutInSeconds * 1000).build(); + return clientBuilder.setDefaultRequestConfig(requestConfig).build(); } + + + + /** * Creates a RESTClient with the specified URL, proxy host, and proxy port. * - * @param URL URL to send request to + * @param url URL to send request to * @param proxyHost proxy host to use for sending request * @param proxyPort proxy port to use for sendin request * * @throws RESTException if unable to create a RESTClient */ - public RESTClient(String URL, String proxyHost, int proxyPort) - throws RESTException { - this(new RESTConfig(URL, proxyHost, proxyPort)); + public RESTClient(String url, String proxyHost, int proxyPort) { + this(new RESTConfig(url, proxyHost, proxyPort)); } /** * Creates a RESTClient with the specified URL. No proxy host nor port will - * be used. + * be used. * - * @param URL URL to send request to + * @param url URL to send request to * * @throws RESTException if unable to create a RESTClient */ - public RESTClient(String URL) throws RESTException { - this(new RESTConfig(URL)); + public RESTClient(String url) { + this(new RESTConfig(url)); } - + /** * Creates a RESTClient with the RESTConfig object. * @@ -246,10 +249,10 @@ public class RESTClient { * * @throws RESTException if unable to create a RESTClient */ - public RESTClient(RESTConfig restConfig) throws RESTException { + public RESTClient(RESTConfig restConfig) { this.headers = new LinkedHashMap<>(); this.parameters = new LinkedHashMap<>(); - this.URL = restConfig.getURL(); + this.url = restConfig.getURL(); this.proxyHost = restConfig.getProxyHost(); this.proxyPort = restConfig.getProxyPort(); } @@ -257,7 +260,7 @@ public class RESTClient { /** * Adds parameter to be sent during http request. * <p> - * Does not remove any parameters with the same name, thus allowing + * Does not remove any parameters with the same name, thus allowing * duplicates. * * @param name name of parameter @@ -297,11 +300,11 @@ public class RESTClient { /** * Adds http header to be sent during http request. * <p> - * Does not remove any headers with the same name, thus allowing + * Does not remove any headers with the same name, thus allowing * duplicates. * - * @param name name of header - * @param value value of header + * @param name name of header + * @param value value of header * @return a reference to 'this', which can be used for method chaining */ public RESTClient addHeader(String name, String value) { @@ -318,11 +321,11 @@ public class RESTClient { /** * Sets http header to be sent during http request. * <p> - * Does not remove any headers with the same name, thus allowing + * Does not remove any headers with the same name, thus allowing * duplicates. * - * @param name name of header - * @param value value of header + * @param name name of header + * @param value value of header * @return a reference to 'this', which can be used for method chaining */ public RESTClient setHeader(String name, String value) { @@ -334,9 +337,9 @@ public class RESTClient { return this; } - + /** - * Convenience method for adding the authorization header using the + * Convenience method for adding the authorization header using the * specified OAuthToken object. * * @param token token to use for setting authorization @@ -375,10 +378,11 @@ public class RESTClient { HttpGet httpGet = new HttpGet(this.getURL() + query); addInternalHeaders(httpGet); + LOGGER.debug("Executing GET to url: " + this.getURL() + query); + response = httpClient.execute(httpGet); - APIResponse apiResponse = buildResponse(response); - return apiResponse; + return buildResponse(response); } catch (IOException ioe) { throw new RESTException(ioe); } finally { @@ -407,8 +411,7 @@ public class RESTClient { * @throws RESTException if POST was unsuccessful */ public APIResponse httpPost() throws RESTException { - APIResponse response = httpPost(buildQuery()); - return response; + return httpPost(buildQuery()); } /** @@ -427,10 +430,12 @@ public class RESTClient { httpEntity = new StringEntity(body); httpPost.setEntity(new StringEntity(body)); } + LOGGER.debug("Executing POST to url: " + this.getURL()); response = httpClient.execute(httpPost); return buildResponse(response); + } catch (IOException e) { throw new RESTException(e); } finally { @@ -441,10 +446,10 @@ public class RESTClient { } /** - * + * * @param body Data to PUT * @return API response - * @throws RESTException + * @throws RESTException */ public APIResponse httpPut(String body) throws RESTException { HttpResponse response = null; @@ -460,6 +465,7 @@ public class RESTClient { httpEntity = new StringEntity(body); httpPut.setEntity(httpEntity); } + LOGGER.debug("Executing PUT to url: " + this.getURL() + query); response = httpClient.execute(httpPut); @@ -483,10 +489,10 @@ public class RESTClient { } /** - * + * * @param body Data to PATCH * @return API response - * @throws RESTException + * @throws RESTException */ public APIResponse httpPatch(String body) throws RESTException { HttpResponse response = null; @@ -501,6 +507,7 @@ public class RESTClient { httpEntity = new StringEntity(body); httpPatch.setEntity(httpEntity); } + LOGGER.debug("Executing PATCH to url: " + this.getURL() + query); response = httpClient.execute(httpPatch); @@ -554,16 +561,17 @@ public class RESTClient { } HttpDeleteWithBody httpDelete = new HttpDeleteWithBody(this.getURL() + query); addInternalHeaders(httpDelete); - + if (body != null && !body.equals("")) { httpEntity = new StringEntity(body); httpDelete.setEntity(httpEntity); } + LOGGER.debug("Executing DELETE to url: " + this.getURL() + query); + response = httpClient.execute(httpDelete); - APIResponse apiResponse = buildResponse(response); - return apiResponse; + return buildResponse(response); } catch (IOException ioe) { throw new RESTException(ioe); } finally { @@ -574,39 +582,40 @@ public class RESTClient { } public String getURL() { - return URL; + return url; } - public LinkedHashMap<String,List<String>> getHeaders() { + public Map<String,List<String>> getHeaders() { return headers; } - public LinkedHashMap<String,List<String>> getParameters() { + public Map<String,List<String>> getParameters() { return parameters; } public HttpEntity getHttpEntity() { return httpEntity; } - + /** * Allows inclusion of a request body with DELETE. */ private class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase { public static final String METHOD_NAME = "DELETE"; - - public String getMethod() { + + @Override + public String getMethod() { return METHOD_NAME; } - + public HttpDeleteWithBody(final String uri) { super(); setURI(URI.create(uri)); } - + public HttpDeleteWithBody(final URI uri) { super(); setURI(uri); } - + public HttpDeleteWithBody() { super(); } diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTConfig.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java index 0e4681824a..b5fecbdb87 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTConfig.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; /** * Configuration values to be used by the RESTClient. diff --git a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTException.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java index 88fa16f736..579927c2ce 100644 --- a/bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTException.java +++ b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.rest; +package org.onap.so.rest; /** * A custom exception class. diff --git a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/APIResponseTest.java b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/APIResponseTest.java index 166a2ff52f..2c81fda32b 100644 --- a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/APIResponseTest.java +++ b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/APIResponseTest.java @@ -1,24 +1,24 @@ /* * ============LICENSE_START======================================================= -* ONAP : SO -* ================================================================================ -* Copyright (C) 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========================================================= + * ONAP : SO + * ================================================================================ + * Copyright (C) 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.openecomp.mso.rest; +package org.onap.so.rest; import static org.junit.Assert.assertEquals; @@ -54,4 +54,4 @@ public class APIResponseTest { assertEquals(1, apiResponse.getAllHeaders().length); assertEquals(49, apiResponse.getResponseBodyAsByteArray().length); } -}
\ No newline at end of file +} diff --git a/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/HttpHeaderTest.java b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/HttpHeaderTest.java new file mode 100644 index 0000000000..bc096687b7 --- /dev/null +++ b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/HttpHeaderTest.java @@ -0,0 +1,40 @@ +/* +* ============LICENSE_START======================================================= + * ONAP : SO + * ================================================================================ + * Copyright (C) 2018 TechMahindra + * ================================================================================ + * 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.rest; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class HttpHeaderTest { + + @Test + public void test() { + HttpHeader hth= new HttpHeader("name", "value"); + assertEquals("name", hth.getName()); + assertEquals("value", hth.getValue()); + } + + @Test (expected = IllegalArgumentException.class) + public void testException() { + HttpHeader httpHeader = new HttpHeader(null, "value"); //null + } +} diff --git a/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTClientTest.java b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTClientTest.java new file mode 100644 index 0000000000..bbdaa94581 --- /dev/null +++ b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTClientTest.java @@ -0,0 +1,195 @@ +/* +* ============LICENSE_START======================================================= + * ONAP : SO + * ================================================================================ + * Copyright (C) 2018 TechMahindra + * ================================================================================ + * 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.rest; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.delete; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.patch; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.put; +import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.spy; + +import org.json.JSONObject; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.springframework.http.HttpStatus; + +import com.github.tomakehurst.wiremock.junit.WireMockRule; + +public class RESTClientTest { + + private RESTClient restClient; + private JSONObject jsonPayload; + private JSONObject jsonResponse; + private String jsonObjectAsString; + private String jsonResponseAsString; + + @Rule + public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(28090)); + + @Before + public void before() throws Exception { + jsonPayload = new JSONObject(); + jsonPayload.put("firstName", "firstName1"); + jsonPayload.put("lastName", "lastName1"); + jsonObjectAsString = jsonPayload.toString(); + jsonResponse = new JSONObject(); + jsonResponse.put("response", "responseValue"); + jsonResponseAsString = jsonResponse.toString(); + restClient = new RESTClient("http://localhost:28090/example", "localhost", 28090); + } + + @Test + public void testHeadersParameters() throws Exception { + restClient.setHeader("name", "value"); + restClient.setParameter("name", "value"); + assertEquals("[value]", restClient.getParameters().get("name").toString()); + assertEquals("[value]", restClient.getHeaders().get("name").toString()); + restClient.setHeader("name", "value2"); + assertEquals("[value2]", restClient.getHeaders().get("name").toString()); + restClient.setParameter("name", "value2"); + assertEquals("[value2]", restClient.getParameters().get("name").toString()); + restClient.addParameter("name", "value"); + assertEquals(1, restClient.getParameters().size()); + restClient.addAuthorizationHeader("token"); + assertEquals("[token]", restClient.getHeaders().get("Authorization").toString()); + assertEquals("http://localhost:28090/example", restClient.getURL()); + restClient = new RESTClient("http://localhost:28090/example1"); + assertEquals("http://localhost:28090/example1", restClient.getURL()); + } + + @Test + public void testHttpPost() throws Exception { + RESTClient restClientMock = mock(RESTClient.class); + restClientMock = spy(restClient); + wireMockRule.stubFor(post(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClientMock.httpPost(jsonObjectAsString); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + verify(restClientMock, times(2)).getURL(); + } + + @Test + public void testPost() throws Exception { + wireMockRule.stubFor(post(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.post(); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testHttpPut() throws Exception { + wireMockRule.stubFor(put(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + restClient.setParameter("name", "value"); + APIResponse apiResponse = restClient.httpPut(jsonObjectAsString); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + + } + + @Test + public void testHttpPatch() throws Exception { + wireMockRule.stubFor(patch(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.httpPatch(jsonObjectAsString); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testPatch_withParameter() throws Exception { + wireMockRule.stubFor(patch(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + restClient.setParameter("name", "value"); + APIResponse apiResponse = restClient.patch(jsonObjectAsString); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testHttpDelete_withPayload() throws Exception { + wireMockRule.stubFor(delete(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.httpDelete(jsonObjectAsString); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testHttpDelete() throws Exception { + wireMockRule.stubFor(delete(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.httpDelete(); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testDelete() throws Exception { + wireMockRule.stubFor(delete(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.delete(); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testHttpGet() throws Exception { + wireMockRule.stubFor(get(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + APIResponse apiResponse = restClient.httpGet(); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + + @Test + public void testGet_withParameter() throws Exception { + wireMockRule.stubFor(get(urlPathMatching("/example/*")) + .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.OK.value()).withBody(jsonResponseAsString))); + restClient.setParameter("name", "value"); + restClient.setParameter("type", "valueType"); + APIResponse apiResponse = restClient.get(); + assertEquals(200, apiResponse.getStatusCode()); + assertEquals(jsonResponseAsString, apiResponse.getResponseBodyAsString()); + assertEquals("application/json", apiResponse.getFirstHeader("Content-Type")); + } + +} diff --git a/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTConfigTest.java b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTConfigTest.java new file mode 100644 index 0000000000..82c3c37be0 --- /dev/null +++ b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTConfigTest.java @@ -0,0 +1,42 @@ +/* +* ============LICENSE_START======================================================= + * ONAP : SO + * ================================================================================ + * Copyright (C) 2018 TechMahindra + * ================================================================================ + * 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.rest; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import org.junit.Test; + +public class RESTConfigTest { + + @Test + public void test() { + RESTConfig rcfg=mock(RESTConfig.class); + RESTConfig rcf=new RESTConfig("URL"); + RESTConfig rcfi=new RESTConfig("URL", true); + RESTConfig rcfo=new RESTConfig("URL", "10.2.3.101", 5020); + RESTConfig rcfn=new RESTConfig("URL", "10.2.3.101", 5020, true); + assert(rcfo.getProxyHost().equals("10.2.3.101")); + assertEquals(5020,rcfn.getProxyPort()); + assert(rcf.getURL().equals("URL")); + assertTrue(rcfn.trustAllCerts()); + } +} diff --git a/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTExceptionTest.java b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTExceptionTest.java new file mode 100644 index 0000000000..19339a187d --- /dev/null +++ b/bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTExceptionTest.java @@ -0,0 +1,40 @@ +/* +* ============LICENSE_START======================================================= + * ONAP : SO + * ================================================================================ + * Copyright (C) 2018 TechMahindra + * ================================================================================ + * 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.rest; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import org.junit.Test; + +public class RESTExceptionTest { + + @Test + public void test() { + RESTException rexm=mock(RESTException.class); + RESTException rex=new RESTException("Error"); + RESTException recpt=new RESTException(200, "Error"); + assert(rex.getErrorMessage().equals("Error")); + assertEquals(200,recpt.getStatusCode()); + Throwable throwable = mock(Throwable.class); + RESTException restException = new RESTException(throwable); + assertEquals(-1, restException.getStatusCode()); + } +} diff --git a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/HttpHeaderTest.java b/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/HttpHeaderTest.java deleted file mode 100644 index 29b7e15364..0000000000 --- a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/HttpHeaderTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* -* ============LICENSE_START======================================================= -* ONAP : SO -* ================================================================================ -* Copyright 2018 TechMahindra -*================================================================================= -* 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.openecomp.mso.rest; - -import static org.junit.Assert.assertEquals; -import org.junit.Test; - -public class HttpHeaderTest { - - @Test - public void test() { - HttpHeader hth= new HttpHeader("name", "value"); - assertEquals("name", hth.getName()); - assertEquals("value", hth.getValue()); - } -} diff --git a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTClientTest.java b/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTClientTest.java deleted file mode 100644 index d3fd4f9ea5..0000000000 --- a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTClientTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* -* ============LICENSE_START======================================================= -* ONAP : SO -* ================================================================================ -* Copyright 2018 TechMahindra -*================================================================================= -* 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.openecomp.mso.rest; - -import static org.mockito.Mockito.mock; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import org.apache.http.HttpResponse; -import org.apache.http.message.AbstractHttpMessage; -import org.junit.Test; - -public class RESTClientTest { - - @Test - public void test()throws Exception{ - APIResponse apr=mock(APIResponse.class); - HttpResponse response=mock(HttpResponse.class); - AbstractHttpMessage httpMsg=mock(AbstractHttpMessage.class); - RESTClient cle=mock(RESTClient.class); - RESTClient rcl=new RESTClient("URL"); - RESTClient rcle=new RESTClient("URL", "10.5.3.126", 5020); - LinkedHashMap<String, List<String>> headers=new LinkedHashMap<>() ; - List<String>list=new ArrayList<>(); - list.add("value"); - headers.put("name", list); - rcle.setHeader("name", "value"); - rcle.setParameter("name", "value"); - assert(rcle.getHeaders()!=null); - assert(rcle.getParameters()!=null); - } -} diff --git a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTConfigTest.java b/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTConfigTest.java deleted file mode 100644 index a64f112234..0000000000 --- a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTConfigTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* -* ============LICENSE_START======================================================= -* ONAP : SO -* ================================================================================ -* Copyright 2018 TechMahindra -*================================================================================= -* 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.openecomp.mso.rest; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import org.junit.Test; - -public class RESTConfigTest { - - @Test - public void test() { - RESTConfig rcfg=mock(RESTConfig.class); - RESTConfig rcf=new RESTConfig("URL"); - RESTConfig rcfi=new RESTConfig("URL", true); - RESTConfig rcfo=new RESTConfig("URL", "10.2.3.101", 5020); - RESTConfig rcfn=new RESTConfig("URL", "10.2.3.101", 5020, true); - assert(rcfo.getProxyHost().equals("10.2.3.101")); - assertEquals(5020,rcfn.getProxyPort()); - assert(rcf.getURL().equals("URL")); - assertTrue(rcfn.trustAllCerts()); - } -} diff --git a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTExceptionTest.java b/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTExceptionTest.java deleted file mode 100644 index de2cd0f608..0000000000 --- a/bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTExceptionTest.java +++ /dev/null @@ -1,37 +0,0 @@ -/* -* ============LICENSE_START======================================================= -* ONAP : SO -* ================================================================================ -* Copyright 2018 TechMahindra -*================================================================================= -* 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.openecomp.mso.rest; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import org.junit.Test; - -public class RESTExceptionTest { - - @Test - public void test() { - RESTException rexm=mock(RESTException.class); - RESTException rex=new RESTException("Error"); - RESTException recpt=new RESTException(200, "Error"); - assert(rex.getErrorMessage().equals("Error")); - assertEquals(200,recpt.getStatusCode()); - } -} |