diff options
7 files changed, 287 insertions, 245 deletions
diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/executorImpl/RestExecutor.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/executorImpl/RestExecutor.java index 4770aba28..011ac973a 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/executorImpl/RestExecutor.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/executorImpl/RestExecutor.java @@ -21,142 +21,125 @@ */ package org.onap.appc.flow.controller.executorImpl; -import java.io.FileInputStream; -import java.io.InputStream; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.ClientResponse.Status; +import com.sun.jersey.api.client.WebResource; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; +import com.sun.jersey.client.urlconnection.HTTPSProperties; import java.net.URI; -import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; -import java.util.Properties; - +import java.util.Map; +import java.util.Optional; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.ws.rs.HttpMethod; import javax.ws.rs.core.MediaType; - import org.apache.commons.lang3.StringUtils; import org.onap.appc.flow.controller.data.Response; import org.onap.appc.flow.controller.data.Transaction; import org.onap.appc.flow.controller.interfaces.FlowExecutorInterface; -import org.onap.appc.flow.controller.utils.FlowControllerConstants; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import com.sun.jersey.api.client.Client; -import com.sun.jersey.api.client.ClientResponse; -import com.sun.jersey.api.client.WebResource; -import com.sun.jersey.api.client.config.DefaultClientConfig; -import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; public class RestExecutor implements FlowExecutorInterface { private static final EELFLogger log = EELFManager.getInstance().getLogger(RestExecutor.class); - private static final String SDNC_CONFIG_DIR_VAR = "SDNC_CONFIG_DIR"; - Properties props = new Properties(); - public RestExecutor() throws Exception { - String propDir = System.getenv(SDNC_CONFIG_DIR_VAR); - if (propDir == null) - throw new Exception(" Cannot find Property file -" + SDNC_CONFIG_DIR_VAR); - String propFile = propDir + FlowControllerConstants.APPC_FLOW_CONTROLLER; - InputStream propStream = new FileInputStream(propFile); - try{ - props.load(propStream); - } - catch (Exception e){ - throw new Exception("Could not load properties file " + propFile, e); - } - finally{ - try{ - propStream.close(); - } - catch (Exception e){ - log.warn("Could not close FileInputStream", e); - } - } - } + @Override - public HashMap<String, String> execute(Transaction transaction, SvcLogicContext ctx) throws Exception{ + public Map<String, String> execute(Transaction transaction, SvcLogicContext ctx) throws Exception{ log.info("Configuring Rest Operation....." + transaction.toString()); - Response response = new Response(); - HashMap<String, String> outputMessage = new HashMap<String, String>(); + Map<String, String> outputMessage = new HashMap<>(); Client client = null; - WebResource webResource = null; - ClientResponse clientResponse = null; - String responseDataType=MediaType.APPLICATION_JSON; - String requestDataType=MediaType.APPLICATION_JSON; - - try{ - DefaultClientConfig defaultClientConfig = new DefaultClientConfig(); + try { System.setProperty("jsse.enableSNIExtension", "false"); - SSLContext sslContext = null; - SecureRestClientTrustManager secureRestClientTrustManager = new SecureRestClientTrustManager(); - sslContext = SSLContext.getInstance("SSL"); - sslContext.init(null, new javax.net.ssl.TrustManager[] { secureRestClientTrustManager }, null); + SSLContext sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, new javax.net.ssl.TrustManager[] {new SecureRestClientTrustManager()}, null); + DefaultClientConfig defaultClientConfig = new DefaultClientConfig(); defaultClientConfig.getProperties().put( - com.sun.jersey.client.urlconnection.HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, - new com.sun.jersey.client.urlconnection.HTTPSProperties(getHostnameVerifier(), sslContext)); - client = Client.create(defaultClientConfig); + HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, + new HTTPSProperties(getHostnameVerifier(), sslContext)); + client = createClient(defaultClientConfig); client.addFilter(new HTTPBasicAuthFilter(transaction.getuId(), transaction.getPswd())); - webResource = client.resource(new URI(transaction.getExecutionEndPoint())); + WebResource webResource = client.resource(new URI(transaction.getExecutionEndPoint())); webResource.setProperty("Content-Type", "application/json;charset=UTF-8"); - log.info("Starting Rest Operation....."); - if(HttpMethod.GET.equalsIgnoreCase(transaction.getExecutionRPC())){ - clientResponse = webResource.accept(responseDataType).get(ClientResponse.class); - }else if(HttpMethod.POST.equalsIgnoreCase(transaction.getExecutionRPC())){ - clientResponse = webResource.type(requestDataType).post(ClientResponse.class, transaction.getPayload()); - }else if(HttpMethod.PUT.equalsIgnoreCase(transaction.getExecutionRPC())){ - clientResponse = webResource.type(requestDataType).put(ClientResponse.class,transaction.getPayload()); - }else if(HttpMethod.DELETE.equalsIgnoreCase(transaction.getExecutionRPC())){ - clientResponse = webResource.delete(ClientResponse.class); - } - - if(clientResponse.getStatus() == 200){ - response.setResponseCode(String.valueOf(clientResponse.getStatus())); - ArrayList<Response> responses = new ArrayList<Response>(); - responses.add(response); - transaction.setResponses(responses); - outputMessage.put("restResponse", clientResponse.getEntity(String.class)); - } - else{ + ClientResponse clientResponse = getClientResponse(transaction, webResource) + .orElseThrow(() -> new Exception( + "Cannot determine the state of : " + + transaction.getActionLevel() + + " HTTP response is null")); - String errorMsg = clientResponse.getEntity(String.class); - if (StringUtils.isNotBlank(errorMsg)) { - log.debug("Error Message from Client Response" + errorMsg); - } - - throw new Exception("Can not determine the state of : " + transaction.getActionLevel() + " HTTP error code : " - + clientResponse.getStatus()); - - } + processClientResponse(clientResponse, transaction, outputMessage); log.info("Completed Rest Operation....."); - }catch (Exception e) { - e.printStackTrace(); - log.debug("failed in RESTCONT Action ("+transaction.getExecutionRPC()+") for the resource " + transaction.getExecutionEndPoint() + ", falut message :"+e.getMessage()); - throw new Exception("Error While Sending Rest Request" + e.getMessage()); - } - finally { - // clean up. - webResource = null; - if(client != null){ + } catch (Exception e) { + log.debug("failed in RESTCONT Action (" + + transaction.getExecutionRPC() + + ") for the resource " + + transaction.getExecutionEndPoint() + + ", fault message :" + + e.getMessage()); + throw new Exception("Error While Sending Rest Request", e); + + } finally { + if(client != null) { client.destroy(); - client = null; } } - return outputMessage; } -private HostnameVerifier getHostnameVerifier() { - return new HostnameVerifier() { - @Override - public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { - return true; + private HostnameVerifier getHostnameVerifier() { + return (hostname, sslSession) -> true; + } + + Client createClient(DefaultClientConfig defaultClientConfig) { + return Client.create(defaultClientConfig); + } + + private Optional<ClientResponse> getClientResponse(Transaction transaction, WebResource webResource) { + String responseDataType=MediaType.APPLICATION_JSON; + String requestDataType=MediaType.APPLICATION_JSON; + ClientResponse clientResponse = null; + + log.info("Starting Rest Operation....."); + if(HttpMethod.GET.equalsIgnoreCase(transaction.getExecutionRPC())) { + clientResponse = webResource.accept(responseDataType).get(ClientResponse.class); + }else if(HttpMethod.POST.equalsIgnoreCase(transaction.getExecutionRPC())) { + clientResponse = webResource.type(requestDataType).post(ClientResponse.class, transaction.getPayload()); + }else if(HttpMethod.PUT.equalsIgnoreCase(transaction.getExecutionRPC())) { + clientResponse = webResource.type(requestDataType).put(ClientResponse.class, transaction.getPayload()); + }else if(HttpMethod.DELETE.equalsIgnoreCase(transaction.getExecutionRPC())) { + clientResponse = webResource.delete(ClientResponse.class); } - }; -} + return Optional.ofNullable(clientResponse); + } + private void processClientResponse (ClientResponse clientResponse, + Transaction transaction, + Map<String, String> outputMessage ) throws Exception { + + if(clientResponse.getStatus() == Status.OK.getStatusCode()) { + Response response = new Response(); + response.setResponseCode(String.valueOf(Status.OK.getStatusCode())); + transaction.setResponses(Collections.singletonList(response)); + outputMessage.put("restResponse", clientResponse.getEntity(String.class)); + } else { + String errorMsg = clientResponse.getEntity(String.class); + if (StringUtils.isNotBlank(errorMsg)) { + log.debug("Error Message from Client Response" + errorMsg); + } + throw new Exception("Cannot determine the state of : " + + transaction.getActionLevel() + + " HTTP error code : " + + clientResponse.getStatus()); + } + } } diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/interfaces/FlowExecutorInterface.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/interfaces/FlowExecutorInterface.java index dccd78222..2949f8d18 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/interfaces/FlowExecutorInterface.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/interfaces/FlowExecutorInterface.java @@ -22,15 +22,14 @@ package org.onap.appc.flow.controller.interfaces; -import java.util.HashMap; - import org.onap.appc.flow.controller.data.Transaction; -import org.onap.appc.flow.controller.utils.FlowControllerConstants; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import java.util.Map; +@FunctionalInterface public interface FlowExecutorInterface { - public HashMap<String, String> execute(Transaction transaction, SvcLogicContext ctx) throws Exception; + Map<String, String> execute(Transaction transaction, SvcLogicContext ctx) throws Exception; } diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowControlNode.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowControlNode.java index 34cdf87ec..8b088e118 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowControlNode.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowControlNode.java @@ -48,16 +48,7 @@ import org.onap.appc.flow.controller.dbervices.FlowControlDBService; import org.onap.appc.flow.controller.executorImpl.GraphExecutor; import org.onap.appc.flow.controller.executorImpl.NodeExecutor; import org.onap.appc.flow.controller.executorImpl.RestExecutor; -import org.onap.appc.flow.controller.interfaceData.ActionIdentifier; -import org.onap.appc.flow.controller.interfaceData.Capabilities; -import org.onap.appc.flow.controller.interfaceData.DependencyInfo; -import org.onap.appc.flow.controller.interfaceData.Input; -import org.onap.appc.flow.controller.interfaceData.InventoryInfo; -import org.onap.appc.flow.controller.interfaceData.RequestInfo; -import org.onap.appc.flow.controller.interfaceData.Vm; -import org.onap.appc.flow.controller.interfaceData.VnfInfo; -import org.onap.appc.flow.controller.interfaceData.Vnfcs; -import org.onap.appc.flow.controller.interfaceData.Vnfcslist; +import org.onap.appc.flow.controller.interfaceData.*; import org.onap.appc.flow.controller.interfaces.FlowExecutorInterface; import org.onap.appc.flow.controller.utils.EncryptionTool; import org.onap.appc.flow.controller.utils.FlowControllerConstants; @@ -140,7 +131,7 @@ public class FlowControlNode implements SvcLogicJavaPlugin{ log.info("CollectInputParamsData-Input: " + input ); RestExecutor restExe = new RestExecutor(); - HashMap<String,String>flowSeq= restExe.execute(transaction, localContext); + Map<String,String>flowSeq= restExe.execute(transaction, localContext); JSONObject sequence = new JSONObject(flowSeq.get("restResponse")); if(sequence.has("output")) diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java index 23d332ba0..b3c2fe23e 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java @@ -22,13 +22,11 @@ package org.onap.appc.flow.controller.node; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.onap.appc.flow.controller.data.Transaction; import org.onap.appc.flow.controller.executorImpl.RestExecutor; @@ -37,11 +35,11 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; +import java.util.Properties; public class RestServiceNode implements SvcLogicJavaPlugin{ @@ -126,7 +124,7 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ if(transaction.getPswd() == null) transaction.setPswd(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".default-rest-pass"))); - HashMap<String, String> output = restRequestExecutor.execute(transaction, ctx); + Map<String, String> output = restRequestExecutor.execute(transaction, ctx); if(isValidJSON(output.get("restResponse")) != null) { ctx.setAttribute(responsePrefix + "." + FlowControllerConstants.OUTPUT_STATUS_MESSAGE , output.get("restResponse")); diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/executorImpl/RestExecutorTest.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/executorImpl/RestExecutorTest.java new file mode 100644 index 000000000..9ed2ec317 --- /dev/null +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/executorImpl/RestExecutorTest.java @@ -0,0 +1,183 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.onap.appc.flow.controller.executorImpl; + +import static javax.ws.rs.core.Response.Status.FORBIDDEN; +import static javax.ws.rs.core.Response.Status.OK; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.when; + +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource; +import java.net.URI; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; +import javax.ws.rs.HttpMethod; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.onap.appc.flow.controller.data.Transaction; + +public class RestExecutorTest { + + private static final String ANY = "notNullString"; + private static final String REST_RESPONSE = "restResponse"; + + private Transaction transaction; + private Map<String, String> outputMessage = new HashMap<>(); + + @Spy + private RestExecutor restExecutor = new RestExecutor(); + @Mock + private Client client; + @Mock + private WebResource webResource; + @Mock + private WebResource.Builder webResourceBuilder; + @Mock + private ClientResponse clientResponse; + + + @Before + public void setUp() { + transaction = new Transaction(); + transaction.setuId(ANY); + transaction.setPswd(ANY); + transaction.setExecutionEndPoint(ANY); + transaction.setPayload(ANY); + + MockitoAnnotations.initMocks(this); + doReturn(client).when(restExecutor).createClient(any()); + when(client.resource(any(URI.class))).thenReturn(webResource); + + when(webResource.accept(anyString())).thenReturn(webResourceBuilder); + when(webResource.type(anyString())).thenReturn(webResourceBuilder); + + when(webResourceBuilder.get(ClientResponse.class)).thenReturn(clientResponse); + when(webResourceBuilder.post(ClientResponse.class, ANY)).thenReturn(clientResponse); + when(webResourceBuilder.put(ClientResponse.class, ANY)).thenReturn(clientResponse); + when(webResource.delete(ClientResponse.class)).thenReturn(clientResponse); + + when(clientResponse.getStatus()).thenReturn(OK.getStatusCode()); + when(clientResponse.getEntity(String.class)).thenReturn(OK.getReasonPhrase()); + } + + @Test + public void checkClientResponse_whenHTTPMethodIsGET() throws Exception { + + transaction.setExecutionRPC(HttpMethod.GET); + + outputMessage = restExecutor.execute(transaction, null); + + assertResponseOK(); + } + + @Test + public void checkClientResponse_whenHTTPMethodIsPOST() throws Exception { + + transaction.setExecutionRPC(HttpMethod.POST); + + outputMessage = restExecutor.execute(transaction, null); + + assertResponseOK(); + } + + @Test + public void checkClientResponse_whenHTTPMethodIsPUT() throws Exception { + + transaction.setExecutionRPC(HttpMethod.PUT); + + outputMessage = restExecutor.execute(transaction, null); + + assertResponseOK(); + } + + @Test + public void checkClientResponse_whenHTTPMethodIsDELETE() throws Exception { + + transaction.setExecutionRPC(HttpMethod.DELETE); + + outputMessage = restExecutor.execute(transaction, null); + + assertResponseOK(); + } + + @Test(expected=Exception.class) + public void checkClienResponse_whenStatusNOK() throws Exception { + try { + when(clientResponse.getStatus()).thenReturn(FORBIDDEN.getStatusCode()); + when(clientResponse.getEntity(String.class)).thenReturn(FORBIDDEN.getReasonPhrase()); + transaction.setExecutionRPC(HttpMethod.GET); + + outputMessage = restExecutor.execute(transaction, null); + + } catch(Exception e) { + assertResponseNOK(e); + throw e; + } + } + + @Test(expected=Exception.class) + public void checkIfExceptionIsThrown_whenHTTPMethodIsNotSupported() throws Exception { + try { + transaction.setExecutionRPC(HttpMethod.HEAD); + + outputMessage = restExecutor.execute(transaction, null); + + } finally { + assertNotSupportedHTTPMethod(); + } + } + + private void assertResponseOK() { + assertFalse("Output Message is empty", outputMessage.isEmpty()); + assertTrue("Output Message does not contain " + REST_RESPONSE, outputMessage.containsKey(REST_RESPONSE)); + assertTrue("restResponse is not " + OK.getReasonPhrase(), + (OK.getReasonPhrase()).equals(outputMessage.get(REST_RESPONSE))); + assertTrue("HTTP_Response in NOK", transaction.getResponses().stream() + .anyMatch(response -> Integer.toString(OK.getStatusCode()).equals(response.getResponseCode()))); + } + + private void assertResponseNOK(Exception e) { + assertTrue("Output Message is not empty as it should", outputMessage.isEmpty()); + assertTrue("Expected HTTP error code: " + FORBIDDEN.getStatusCode() + " is not present", + e.getCause().getMessage().contains(Integer.toString(FORBIDDEN.getStatusCode()))); + } + + private void assertNotSupportedHTTPMethod() { + assertTrue("Output Message is not empty as it should", outputMessage.isEmpty()); + assertTrue("HTTP Method: " + transaction.getExecutionRPC() + " is supported but was not handled", + Stream.of(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE) + .noneMatch(httpMethod -> httpMethod.equals(transaction.getExecutionRPC()))); + } +} diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/RestExecutorTest.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/RestExecutorTest.java deleted file mode 100644 index 11ddbe024..000000000 --- a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/RestExecutorTest.java +++ /dev/null @@ -1,103 +0,0 @@ -/*-
- * ============LICENSE_START=======================================================
- * ONAP : APPC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Copyright (C) 2017 Amdocs
- * =============================================================================
- * 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.
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.appc.flow.executor.node;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.net.URI;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.net.ssl.SSLContext;
-import javax.ws.rs.core.MediaType;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.onap.appc.flow.controller.executorImpl.RestExecutor;
-import org.powermock.api.mockito.PowerMockito;
-
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
-
-public class RestExecutorTest {
-
-
- private static final String URL = null;
-
- @Mock
- private DefaultClientConfig clientConfig;
-
- @Mock
- private com.sun.jersey.api.client.WebResource webResource;
-
- @InjectMocks
- private Client client;
- @Mock
- private ClientResponse res;
- @Mock
- URI resourceUri;
-@Mock
-RestExecutor restEx;
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- clientConfig = Mockito.mock(DefaultClientConfig.class);
- Client mockClient = Client.create();
- client = Client.create(clientConfig);
- doReturn(mockClient).when(client).create();
- webResource= mockClient.resource(URL);
- doReturn(webResource).when(mockClient).resource(URL);
- when(webResource.get((Class<String>) any())).thenReturn("OK") ;
- }
-
- @After
- public void tearDown() throws Exception {
- }
-
-
-
-
-
-}
diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/TestRestServiceNode.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/TestRestServiceNode.java index 802601e5c..eb5bfd2fe 100644 --- a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/TestRestServiceNode.java +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/TestRestServiceNode.java @@ -22,26 +22,17 @@ */ package org.onap.appc.flow.executor.node; -import java.io.InputStream; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Properties; - -import org.junit.Before; import org.junit.Test; import org.onap.appc.flow.controller.data.Transaction; import org.onap.appc.flow.controller.executorImpl.RestExecutor; -import org.onap.appc.flow.controller.interfaceData.ActionIdentifier; -import org.onap.appc.flow.controller.interfaceData.InventoryInfo; -import org.onap.appc.flow.controller.interfaceData.RequestInfo; -import org.onap.appc.flow.controller.interfaceData.Vm; -import org.onap.appc.flow.controller.interfaceData.VnfInfo; -import org.onap.appc.flow.controller.interfaceData.Vnfcslist; import org.onap.appc.flow.controller.node.FlowControlNode; import org.onap.appc.flow.controller.node.RestServiceNode; import org.onap.appc.flow.controller.utils.FlowControllerConstants; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import java.util.HashMap; +import java.util.Map; + public class TestRestServiceNode { @Test(expected=Exception.class) @@ -82,7 +73,7 @@ public class TestRestServiceNode { Transaction transaction = new Transaction(); FlowControlNode node = new FlowControlNode(); - HashMap<String,String>flowSeq= restExe.execute(transaction, ctx); + Map<String,String> flowSeq= restExe.execute(transaction, ctx); String flowSequnce=flowSeq.get("restResponse"); } |