summaryrefslogtreecommitdiffstats
path: root/bpmn/MSORESTClient
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSORESTClient')
-rw-r--r--bpmn/MSORESTClient/pom.xml2
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/APIResponse.java)2
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HostNameVerifier.java)6
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/HttpHeader.java)2
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTClient.java)147
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTConfig.java)2
-rw-r--r--bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java (renamed from bpmn/MSORESTClient/src/main/java/org/openecomp/mso/rest/RESTException.java)2
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/onap/so/rest/APIResponseTest.java (renamed from bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/APIResponseTest.java)36
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/onap/so/rest/HttpHeaderTest.java40
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTClientTest.java195
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTConfigTest.java42
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/onap/so/rest/RESTExceptionTest.java40
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/HttpHeaderTest.java34
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTClientTest.java50
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTConfigTest.java42
-rw-r--r--bpmn/MSORESTClient/src/test/java/org/openecomp/mso/rest/RESTExceptionTest.java37
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());
- }
-}