From da675ef4d11d68ad537390ce99bb4eb5bd7d1bbb Mon Sep 17 00:00:00 2001 From: Zhaoxing Date: Fri, 13 Oct 2017 15:23:14 +0800 Subject: [PATCH] Fix the docker build error for vfc-nfvo-wfengine Change-Id: I136cd06f9b71fa6d51f25cfb2a00cb1d29fbe31c Issue-id: VFC-445 Signed-off-by: Zhaoxing --- activiti-extension/pom.xml | 36 +- .../activitiext/common/EnumModuleUrlTest.java | 89 ++-- .../restservicetask/HighLevelRestApiTest.java | 378 +++++++------ .../restservicetask/HttpResponseMessageTest.java | 82 +-- .../activitiext/restservicetask/HttpUtilTest.java | 316 +++++------ pom.xml | 14 + wfenginemgrservice/pom.xml | 24 + .../java/org/onap/workflow/common/RestClient.java | 584 +++++++++++---------- .../activitiservice/ActivitiServiceConsumer.java | 230 ++++---- .../org/onap/workflow/common/RestClientTest.java | 294 +++++++---- .../onap/workflow/common/RestClientUtilsTest.java | 112 ++-- .../ActivitiServiceConsumerTest.java | 254 ++++----- .../resources/WorkflowInstanceWrapperTest.java | 171 +++--- 13 files changed, 1331 insertions(+), 1253 deletions(-) diff --git a/activiti-extension/pom.xml b/activiti-extension/pom.xml index 27e59d5..aa0603f 100644 --- a/activiti-extension/pom.xml +++ b/activiti-extension/pom.xml @@ -42,6 +42,20 @@ warn + + wfengine-staging + https://nexus.onap.org/content/groups/staging + + true + always + fail + + + false + always + warn + + wfengine-snapshots https://nexus.onap.org/content/repositories/snapshots @@ -57,6 +71,16 @@ + + + wfengine-releases + https://nexus.onap.org/content/repositories/releases + + + wfengine-snapshots + https://nexus.onap.org/content/repositories/snapshots + + @@ -328,7 +352,17 @@ org.onap.msb.java-sdk msb-java-sdk - 1.0.0-SNAPSHOT + 1.0.0 + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.5.1 + + + com.fasterxml.jackson.core + jackson-annotations + 2.5.1 + diff --git a/activiti-extension/src/test/java/org/onap/workflow/activitiext/common/EnumModuleUrlTest.java b/activiti-extension/src/test/java/org/onap/workflow/activitiext/common/EnumModuleUrlTest.java index f3cdd84..6d9018e 100644 --- a/activiti-extension/src/test/java/org/onap/workflow/activitiext/common/EnumModuleUrlTest.java +++ b/activiti-extension/src/test/java/org/onap/workflow/activitiext/common/EnumModuleUrlTest.java @@ -1,45 +1,44 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.activitiext.common; - - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.msb.sdk.discovery.common.RouteException; -import org.onap.workflow.utils.MsbUtils; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -/** - * - */ -@PrepareForTest({MsbUtils.class}) -@RunWith(PowerMockRunner.class) -public class EnumModuleUrlTest { - @Test - public void testGetBaseUrl() { - try { - String baseUrl = "http://127.0.0.1:80"; - PowerMockito.mockStatic(MsbUtils.class); - PowerMockito.when(MsbUtils.getServiceAddress("catalog", "v1")).thenReturn(baseUrl); - Assert.assertEquals(baseUrl, EnumModuleUrl.getBaseUrl(ServiceType.catalog)); - } catch (RouteException e) { - assert (false); - } - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.activitiext.common; + + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.workflow.utils.MsbUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +/** + * + */ +@PrepareForTest({MsbUtils.class}) +@RunWith(PowerMockRunner.class) +public class EnumModuleUrlTest { + @Test + public void testGetBaseUrl() { + try { + String baseUrl = "http://127.0.0.1:80"; + PowerMockito.mockStatic(MsbUtils.class); + PowerMockito.when(MsbUtils.getServiceAddress("catalog", "v1")).thenReturn(baseUrl); + Assert.assertEquals(baseUrl, EnumModuleUrl.getBaseUrl(ServiceType.catalog)); + } catch (Exception e) { + assert (false); + } + } +} diff --git a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HighLevelRestApiTest.java b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HighLevelRestApiTest.java index 0f20a1e..2cc438a 100644 --- a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HighLevelRestApiTest.java +++ b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HighLevelRestApiTest.java @@ -1,193 +1,185 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.activitiext.restservicetask; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -import org.apache.commons.httpclient.HttpMethodBase; -import org.apache.commons.httpclient.NameValuePair; -import org.apache.commons.httpclient.methods.GetMethod; -import org.junit.Before; -import org.junit.Test; -import org.junit.Assert; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.onap.workflow.activitiext.common.RestInfo; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@PrepareForTest({LowLevelRestApi.class}) -@RunWith(PowerMockRunner.class) -public class HighLevelRestApiTest { - - private HighLevelRestApi highLevelRestApi; - - @Before - public void setUp() { - highLevelRestApi = new HighLevelRestApi(); - } - - @Test - public void testInvoke() { - - try { - RestInfo info = new RestInfo(); - info.setMethod("GET"); - info.setName("name"); - info.setPath("/catalog/v1"); - info.setUrl("csars"); - info.setRealUri(""); - info.setVersion("v1"); - - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - PowerMockito.mockStatic(LowLevelRestApi.class); - PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); - - assertThat(HighLevelRestApi.invoke(info), is(msg));; - } catch (Exception e) { - assert (false); - } - } - - @Test - public void testGet() { - - try { - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - PowerMockito.mockStatic(LowLevelRestApi.class); - PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); - - String uri = "10.74.148.107/openoapi/catalog/v1/dbtest?id=5"; - String acceptValue = "application/json"; - String contentTypeValue = "application/json"; - - assertThat(HighLevelRestApi.Get(uri, acceptValue, contentTypeValue), is(msg)); - } catch (Exception e) { - assert (false); - } - } - - @Test - public void testPost() { - - try { - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - PowerMockito.mockStatic(LowLevelRestApi.class); - PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); - - String uri = "10.74.148.107/openoapi/catalog/v1/dbtest?id=5"; - String requestBody = "{'type':'NFAR'}"; - String acceptValue = "application/json"; - String contentTypeValue = "application/json"; - - assertThat(HighLevelRestApi.Post(uri, requestBody, acceptValue, contentTypeValue), is(msg)); - } catch (Exception e) { - assert (false); - } - } - - @Test - public void testDelete() { - - try { - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - PowerMockito.mockStatic(LowLevelRestApi.class); - PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); - - String uri = "10.74.148.107/openoapi/catalog/v1/csars/aa1bc611c9fbc08247d5ea71fd67ec3f"; - String acceptValue = "application/json"; - String contentTypeValue = "application/json"; - - assertThat(HighLevelRestApi.Delete(uri, acceptValue, contentTypeValue), is(msg)); - } catch (Exception e) { - assert (false); - } - } - - @Test - public void testPut() { - - try { - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - PowerMockito.mockStatic(LowLevelRestApi.class); - PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); - - String uri = "10.74.148.107/openoapi/catalog/v1/csars"; - String requestBody = "{'type':'NFAR'}"; - String acceptValue = "application/json"; - String contentTypeValue = "application/json"; - - assertThat(HighLevelRestApi.Put(uri, requestBody, acceptValue, contentTypeValue), is(msg)); - } catch (Exception e) { - assert (false); - } - } - - @SuppressWarnings("static-access") - @Test - public void testCreateNameValuePairArrayFromQuery() { - NameValuePair[] pair = new NameValuePair[2]; - NameValuePair p1 = new NameValuePair(); - p1.setName("name"); - p1.setValue("liuyao"); - NameValuePair p2 = new NameValuePair(); - p2.setName("pwd"); - p2.setValue("zte"); - - pair[0] = p1; - pair[1] = p2; - - String query = "name=liuyao&pwd=zte"; - - assertThat(highLevelRestApi.createNameValuePairArrayFromQuery(query), is(pair)); - } - - @Test - public void testSetAcceptHeader() { - try { - HttpMethodBase method = new GetMethod(); - HighLevelRestApi.setAcceptHeader(method, "[application/json]"); - Assert.assertTrue(true); - } catch (Exception e) { - Assert.assertTrue(false); - } - } - - @Test - public void testSetContentTypeHeader() { - - try { - HttpMethodBase method = new GetMethod(); - HighLevelRestApi.setContentTypeHeader(method, "[application/json]"); - Assert.assertTrue(true); - } catch (Exception e) { - Assert.assertTrue(false); - } - } - -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.activitiext.restservicetask; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.apache.commons.httpclient.HttpMethodBase; +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.methods.GetMethod; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.workflow.activitiext.common.RestInfo; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@PrepareForTest({LowLevelRestApi.class}) +@RunWith(PowerMockRunner.class) +public class HighLevelRestApiTest { + + @Test + public void testInvoke() { + + try { + RestInfo info = new RestInfo(); + info.setMethod("GET"); + info.setName("name"); + info.setPath("/catalog/v1"); + info.setUrl("csars"); + info.setRealUri(""); + info.setVersion("v1"); + + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + PowerMockito.mockStatic(LowLevelRestApi.class); + PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); + + assertThat(HighLevelRestApi.invoke(info), is(msg));; + } catch (Exception e) { + assert (false); + } + } + + @Test + public void testGet() { + + try { + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + PowerMockito.mockStatic(LowLevelRestApi.class); + PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); + + String uri = "10.74.148.107/openoapi/catalog/v1/dbtest?id=5"; + String acceptValue = "application/json"; + String contentTypeValue = "application/json"; + + assertThat(HighLevelRestApi.Get(uri, acceptValue, contentTypeValue), is(msg)); + } catch (Exception e) { + assert (false); + } + } + + @Test + public void testPost() { + + try { + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + PowerMockito.mockStatic(LowLevelRestApi.class); + PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); + + String uri = "10.74.148.107/openoapi/catalog/v1/dbtest?id=5"; + String requestBody = "{'type':'NFAR'}"; + String acceptValue = "application/json"; + String contentTypeValue = "application/json"; + + assertThat(HighLevelRestApi.Post(uri, requestBody, acceptValue, contentTypeValue), is(msg)); + } catch (Exception e) { + assert (false); + } + } + + @Test + public void testDelete() { + + try { + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + PowerMockito.mockStatic(LowLevelRestApi.class); + PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); + + String uri = "10.74.148.107/openoapi/catalog/v1/csars/aa1bc611c9fbc08247d5ea71fd67ec3f"; + String acceptValue = "application/json"; + String contentTypeValue = "application/json"; + + assertThat(HighLevelRestApi.Delete(uri, acceptValue, contentTypeValue), is(msg)); + } catch (Exception e) { + assert (false); + } + } + + @Test + public void testPut() { + + try { + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + PowerMockito.mockStatic(LowLevelRestApi.class); + PowerMockito.when(LowLevelRestApi.executeHttpMethod(Mockito.anyObject())).thenReturn(msg); + + String uri = "10.74.148.107/openoapi/catalog/v1/csars"; + String requestBody = "{'type':'NFAR'}"; + String acceptValue = "application/json"; + String contentTypeValue = "application/json"; + + assertThat(HighLevelRestApi.Put(uri, requestBody, acceptValue, contentTypeValue), is(msg)); + } catch (Exception e) { + assert (false); + } + } + + @SuppressWarnings("static-access") + @Test + public void testCreateNameValuePairArrayFromQuery() { + NameValuePair[] pair = new NameValuePair[2]; + NameValuePair p1 = new NameValuePair(); + p1.setName("name"); + p1.setValue("liuyao"); + NameValuePair p2 = new NameValuePair(); + p2.setName("pwd"); + p2.setValue("zte"); + + pair[0] = p1; + pair[1] = p2; + + String query = "name=liuyao&pwd=zte"; + + assertThat(HighLevelRestApi.createNameValuePairArrayFromQuery(query), is(pair)); + } + + @Test + public void testSetAcceptHeader() { + try { + HttpMethodBase method = new GetMethod(); + HighLevelRestApi.setAcceptHeader(method, "[application/json]"); + Assert.assertTrue(true); + } catch (Exception e) { + Assert.assertTrue(false); + } + } + + @Test + public void testSetContentTypeHeader() { + + try { + HttpMethodBase method = new GetMethod(); + HighLevelRestApi.setContentTypeHeader(method, "[application/json]"); + Assert.assertTrue(true); + } catch (Exception e) { + Assert.assertTrue(false); + } + } + +} diff --git a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpResponseMessageTest.java b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpResponseMessageTest.java index befcf3f..92ddfc3 100644 --- a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpResponseMessageTest.java +++ b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpResponseMessageTest.java @@ -1,41 +1,41 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.activitiext.restservicetask; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -import org.junit.Test; - -import com.alibaba.fastjson.JSON; - -public class HttpResponseMessageTest { - - @Test - public void testToString(){ - - String json = "{'name':'robert'}"; - JSON obj = (JSON) JSON.parse(json); - - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(obj); - - String result = "{statusCode=200, responseBody={\"name\":\"robert\"}}"; - - assertThat(msg.toString(), is(result)); - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.activitiext.restservicetask; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.junit.Test; + +import com.alibaba.fastjson.JSON; + +public class HttpResponseMessageTest { + + @Test + public void testToString(){ + + String json = "{'name':'robert'}"; + JSON obj = (JSON) JSON.parse(json); + + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(obj); + + String result = "{statusCode=" + msg.getStatusCode() + ", responseBody=" + msg.getResponseBody() + "}"; + + assertThat(msg.toString(), is(result)); + } +} diff --git a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpUtilTest.java b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpUtilTest.java index 2852e29..1e7c893 100644 --- a/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpUtilTest.java +++ b/activiti-extension/src/test/java/org/onap/workflow/activitiext/restservicetask/HttpUtilTest.java @@ -1,153 +1,163 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.activitiext.restservicetask; - -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.activiti.engine.ActivitiException; -import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.Expression; -import org.activiti.engine.impl.persistence.entity.ExecutionEntity; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.onap.workflow.activitiext.common.Parameter; -import org.onap.workflow.activitiext.common.RestInfo; -import org.powermock.api.mockito.PowerMockito; - -import com.alibaba.fastjson.JSON; - -public class HttpUtilTest { - - private HttpUtil httpUtil; - - @Before - public void setUp() { - httpUtil = new HttpUtil(); - } - - @Test - public void testExecute() { - - try { - DelegateExecution executionEntity = mock(ExecutionEntity.class); - HttpUtil httpUtil1 = mock(HttpUtil.class); - PowerMockito.when(httpUtil1.executeMethod(executionEntity)).thenReturn(true); - httpUtil1.execute(executionEntity); - Assert.assertTrue(true); - } catch (Exception e) { - Assert.assertTrue(false); - } - } - - @Test - public void testExecuteMethod() { - - DelegateExecution executionEntity = mock(ExecutionEntity.class); - try { - PowerMockito.when(executionEntity.getCurrentActivityId()).thenReturn("1111"); - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(null); - httpUtil.executeMethod(executionEntity); - Assert.assertTrue(false); - } catch (Exception e) { - Assert.assertTrue(true); - } - } - - @Test - public void testHandleParam1() { - - try { - DelegateExecution executionEntity = mock(ExecutionEntity.class); - Parameter param = new Parameter(); - param.setName("id"); - param.setPosition("path"); - param.setType(""); - param.setValue("abc"); - - RestInfo info = new RestInfo(); - info.setMethod("GET"); - info.setName("name"); - info.setPath("/catalog/v1"); - info.setRealUri(""); - info.setUrl("csars"); - info.setVersion("v1"); - - httpUtil.handleParam(executionEntity, param, info); - Assert.assertTrue(true); - } catch (ActivitiException e) { - Assert.assertTrue(true); - } - - } - - @Test - public void testHandleParam2() { - try { - DelegateExecution executionEntity = mock(ExecutionEntity.class); - Parameter param = new Parameter(); - param.setName("id"); - param.setPosition("query"); - param.setType(""); - param.setValue("abc"); - - RestInfo info = new RestInfo(); - info.setMethod("GET"); - info.setName("name"); - info.setPath("/catalog/v1"); - info.setRealUri(""); - info.setUrl("csars"); - info.setVersion("v1"); - - httpUtil.handleParam(executionEntity, param, info); - Assert.assertTrue(true); - } catch (ActivitiException e) { - Assert.assertTrue(true); - } - - } - - @Test - public void testGetValue() { - DelegateExecution executionEntity = mock(ExecutionEntity.class); - Expression expression = mock(Expression.class); - Object res = new String("result"); - - PowerMockito.when(expression.getValue(executionEntity)).thenReturn(res); - - Assert.assertEquals(res, httpUtil.getValue(expression, executionEntity)); - } - - @SuppressWarnings("static-access") - @Test - public void testParsePlanExpression() { - - String exp = "[node0].[responseBody].[id]"; - String json = "{'id':'123'}"; - JSON obj = (JSON) JSON.parse(json); - HttpResponseMessage msg = new HttpResponseMessage(); - msg.setStatusCode(200); - msg.setResponseBody(obj); - - DelegateExecution executionEntity = mock(ExecutionEntity.class); - - PowerMockito.when(executionEntity.getVariable("node0")).thenReturn(msg); - - Assert.assertEquals("123", httpUtil.parsePlanExpression(exp, executionEntity)); - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.activitiext.restservicetask; + +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.activiti.engine.ActivitiException; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.impl.persistence.entity.ExecutionEntity; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.onap.workflow.activitiext.common.Parameter; +import org.onap.workflow.activitiext.common.RestInfo; +import org.powermock.api.mockito.PowerMockito; + +import com.alibaba.fastjson.JSON; + +public class HttpUtilTest { + + private HttpUtil httpUtil; + + @Before + public void setUp() { + httpUtil = new HttpUtil(); + } + + @Test + public void testExecuteMethod() { + + DelegateExecution executionEntity = mock(ExecutionEntity.class); + try { + PowerMockito.when(executionEntity.getCurrentActivityId()).thenReturn("1111"); + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(null); + httpUtil.execute(executionEntity); + Assert.assertTrue(false); + } catch (Exception e) { + Assert.assertTrue(true); + } + } + + @Test + public void testHandleParam1() { + + try { + DelegateExecution executionEntity = mock(ExecutionEntity.class); + Parameter param = new Parameter(); + param.setName("id"); + param.setPosition("path"); + param.setType(""); + param.setValue("abc"); + + RestInfo info = new RestInfo(); + info.setMethod("GET"); + info.setName("name"); + info.setPath("/catalog/v1"); + info.setRealUri(""); + info.setUrl("csars"); + info.setVersion("v1"); + + httpUtil.handleParam(executionEntity, param, info); + Assert.assertTrue(true); + } catch (ActivitiException e) { + Assert.assertTrue(true); + } + + } + + @Test + public void testHandleParam2() { + try { + DelegateExecution executionEntity = mock(ExecutionEntity.class); + Parameter param = new Parameter(); + param.setName("id"); + param.setPosition("query"); + param.setType(""); + param.setValue("abc"); + + RestInfo info = new RestInfo(); + info.setMethod("GET"); + info.setName("name"); + info.setPath("/catalog/v1"); + info.setRealUri(""); + info.setUrl("csars"); + info.setVersion("v1"); + + httpUtil.handleParam(executionEntity, param, info); + Assert.assertTrue(true); + } catch (ActivitiException e) { + Assert.assertTrue(true); + } + } + + @Test + public void testHandleParam3() { + try { + DelegateExecution executionEntity = mock(ExecutionEntity.class); + Parameter param = new Parameter(); + param.setName("id"); + param.setPosition("body"); + param.setType(""); + param.setValue("{'value':{'progress':{'value':'60','valueSource':'String'},'errcode':{'value':'200','valueSource':'Variable'},'desc':{'value':'','valueSource':'String'}},'valueSource':'Definition'}"); + + RestInfo info = new RestInfo(); + info.setMethod("GET"); + info.setName("name"); + info.setPath("/catalog/v1"); + info.setRealUri(""); + info.setUrl("csars"); + info.setVersion("v1"); + + httpUtil.handleParam(executionEntity, param, info); + Assert.assertTrue(true); + } catch (ActivitiException e) { + Assert.assertTrue(true); + } + } + + @Test + public void testGetValue() { + DelegateExecution executionEntity = mock(ExecutionEntity.class); + Expression expression = mock(Expression.class); + Object res = new String("result"); + + PowerMockito.when(expression.getValue(executionEntity)).thenReturn(res); + + Assert.assertEquals(res, httpUtil.getValue(expression, executionEntity)); + } + + @SuppressWarnings("static-access") + @Test + public void testParsePlanExpression() { + + String exp = "[node0].[responseBody].[id]"; + String json = "{'id':'123'}"; + JSON obj = (JSON) JSON.parse(json); + HttpResponseMessage msg = new HttpResponseMessage(); + msg.setStatusCode(200); + msg.setResponseBody(obj); + + DelegateExecution executionEntity = mock(ExecutionEntity.class); + + PowerMockito.when(executionEntity.getVariable("node0")).thenReturn(msg); + + Assert.assertEquals("123", httpUtil.parsePlanExpression(exp, executionEntity)); + } +} diff --git a/pom.xml b/pom.xml index 833281f..05c1588 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,20 @@ warn + + wfengine-staging + https://nexus.onap.org/content/groups/staging + + true + always + fail + + + false + always + warn + + wfengine-snapshots https://nexus.onap.org/content/repositories/snapshots diff --git a/wfenginemgrservice/pom.xml b/wfenginemgrservice/pom.xml index ca3da34..d1117f4 100644 --- a/wfenginemgrservice/pom.xml +++ b/wfenginemgrservice/pom.xml @@ -42,6 +42,20 @@ warn + + wfengine-staging + https://nexus.onap.org/content/groups/staging + + true + always + fail + + + false + always + warn + + wfengine-snapshots https://nexus.onap.org/content/repositories/snapshots @@ -57,6 +71,16 @@ + + + wfengine-releases + https://nexus.onap.org/content/repositories/releases + + + wfengine-snapshots + https://nexus.onap.org/content/repositories/snapshots + + diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java b/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java index 2eeb2fc..4d92dcb 100644 --- a/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/common/RestClient.java @@ -1,289 +1,295 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.common; - -import java.io.IOException; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpHost; -import org.apache.http.HttpRequest; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.ResponseHandler; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpPut; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicResponseHandler; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.onap.workflow.tools.Constants; -import org.onap.workflow.tools.HttpDeleteWithBody; -import org.onap.workflow.tools.RequestParameters; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -public class RestClient { - private static final String HTTP = "http"; - private static final Logger logger = LoggerFactory.getLogger(RestClient.class); - - public enum HttpMethod { - GET, POST, PUT, DELETE - } - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttp(HttpMethod method, String ip, Integer port, String url, - HttpEntity body) throws ClientProtocolException, IOException { - logger.info("deployfile method send"); - CloseableHttpClient httpclient = HttpClients.createDefault(); - HttpResponse httpResponse = null; - RestResponse result = new RestResponse(); - try { - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if (port == null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - HttpHost target = new HttpHost(ip, port, HTTP); - HttpRequest request = getRequest(method, url, body); - logger.info("deployfile method send ip" + ip); - request.addHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - - httpResponse = httpclient.execute(target, request); - HttpEntity entity = httpResponse.getEntity(); - logger.info("deployfile method send"); - if (entity != null && httpResponse.getStatusLine()!=null) { - result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); - logger.info("reply status code deploy"+httpResponse.getStatusLine().getStatusCode()); - result.setResult(EntityUtils.toString(entity)); - } - } catch (IOException e) { - logger.warn("Close httpclient failed.", e); - } finally { - if (httpclient != null) { - try { - httpclient.close(); - } catch (IOException e) { - logger.warn("Close httpclient failed.", e); - } - } - } - return result; - } - - public static HttpRequest getRequest(HttpMethod method, String url, HttpEntity body) { - HttpRequest request = null; - switch (method) { - case GET: - request = new HttpGet(url); - break; - case POST: - request = new HttpPost(url); - ((HttpPost) request).setEntity(body); - break; - case PUT: - request = new HttpPut(url); - ((HttpPut) request).setEntity(body); - break; - case DELETE: - request = new HttpDelete(url); - break; - default: - break; - } - return request; - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, int port, String url, HttpEntity requestBody) - throws ClientProtocolException, IOException { - return executeHttp(HttpMethod.POST, ip, port, url, requestBody); - } - - - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttpDeleteDeploy(HttpMethod method, String ip, Integer port, - String url) throws ClientProtocolException, IOException { - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if(port==null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - RestResponse result = new RestResponse(); - CloseableHttpClient httpClient = HttpClients.createDefault(); - try { - httpClient = HttpClients.createDefault(); - // "http://localhost:8080/activiti-rest/service/repository/deployments/167501" - String deleteUrl = Constants.HTTP_HEADER + ip + Constants.COLON + port + url; - HttpDeleteWithBody httpDeteTest = new HttpDeleteWithBody(deleteUrl); - Gson gson = new Gson(); - RequestParameters reqPa = new RequestParameters(); - reqPa.setCasCade(true); - String jsonStr = gson.toJson(reqPa, RequestParameters.class); - StringEntity requestEntity = new StringEntity(jsonStr, "UTF-8"); - requestEntity.setContentEncoding("UTF-8"); - httpDeteTest.setHeader("Content-type", "application/json"); - httpDeteTest.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - httpDeteTest.setEntity(new StringEntity(jsonStr)); - // returnValue = httpClient.execute(httpDeteTest, responseHandler); // 调接口获取返回值时,必须用此方法 - CloseableHttpResponse httpResonse = httpClient.execute(httpDeteTest); - if(httpResonse!=null && httpResonse.getStatusLine()!=null) { - int statusCode = httpResonse.getStatusLine().getStatusCode(); - result.setStatusCode(statusCode); - } - // result.setResult(EntityUtils.toString(httpResonse.getEntity())); - } catch (Exception e) { - e.printStackTrace(); - } - - finally { - try { - httpClient.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - return result; - } - - /** - * - * @param method - * @param ip - * @param port - * @param url - * @param body - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse executeHttpStartIntance(HttpMethod method, String ip, Integer port, - String url, ActivitiStartProcessRequest object) throws ClientProtocolException, IOException { - String returnValue = ""; - RestResponse result = new RestResponse(); - CloseableHttpClient httpClient = HttpClients.createDefault(); - ResponseHandler responseHandler = new BasicResponseHandler(); - try { - httpClient = HttpClients.createDefault(); - if (ip == null) { - ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - } - if(ip==null) { - port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - } - HttpPost httpPost = new HttpPost(Constants.HTTP_HEADER + ip + ":" + port + url); - Gson gson = new Gson(); - String jsonStr = gson.toJson(object, ActivitiStartProcessRequest.class); - StringEntity requestEntity = new StringEntity(jsonStr, "utf-8"); - requestEntity.setContentEncoding("UTF-8"); - httpPost.setHeader("Content-type", "application/json"); - httpPost.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); - httpPost.setEntity(requestEntity); - returnValue = httpClient.execute(httpPost, responseHandler); // 调接口获取返回值时,必须用此方法 - CloseableHttpResponse httpResonse = httpClient.execute(httpPost); - if(httpResonse!=null && httpResonse.getStatusLine()!=null) { - int statusCode = httpResonse.getStatusLine().getStatusCode(); - returnValue = EntityUtils.toString(httpResonse.getEntity(), "UTF-8"); - result.setStatusCode(statusCode); - result.setResult(returnValue); - } - } catch (Exception e) { - e.printStackTrace(); - } - - finally { - try { - httpClient.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - return result; - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, Integer port, String url, - ActivitiStartProcessRequest requestBody) throws ClientProtocolException, IOException { - return executeHttpStartIntance(HttpMethod.POST, ip, port, url, requestBody); - } - - /** - * - * @param ip - * @param port - * @param url - * @param requestBody - * @return - * @throws ClientProtocolException - * @throws IOException - */ - public static RestResponse post(String ip, Integer port, String url) - throws ClientProtocolException, IOException { - return executeHttpDeleteDeploy(HttpMethod.DELETE, ip, port, url); - } - -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.common; + +import java.io.IOException; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpHost; +import org.apache.http.HttpRequest; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; +import org.onap.workflow.tools.Constants; +import org.onap.workflow.tools.HttpDeleteWithBody; +import org.onap.workflow.tools.RequestParameters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +public class RestClient { + private static final String HTTP = "http"; + private static final Logger logger = LoggerFactory.getLogger(RestClient.class); + public static boolean isTest = false; + + public enum HttpMethod { + GET, POST, PUT, DELETE + } + + /** + * + * @param method + * @param ip + * @param port + * @param url + * @param body + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse executeHttp(HttpMethod method, String ip, Integer port, String url, + HttpEntity body) throws ClientProtocolException, IOException { + if (isTest) { + return new RestResponse(); + } + + logger.info("deployfile method send"); + CloseableHttpClient httpclient = HttpClients.createDefault(); + HttpResponse httpResponse = null; + RestResponse result = new RestResponse(); + try { + if (ip == null) { + ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); + } + if (port == null) { + port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); + } + HttpHost target = new HttpHost(ip, port, HTTP); + HttpRequest request = getRequest(method, url, body); + logger.info("deployfile method send ip" + ip); + request.addHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); + + httpResponse = httpclient.execute(target, request); + HttpEntity entity = httpResponse.getEntity(); + logger.info("deployfile method send"); + if (entity != null && httpResponse.getStatusLine() != null) { + result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); + logger.info("reply status code deploy" + httpResponse.getStatusLine().getStatusCode()); + result.setResult(EntityUtils.toString(entity)); + } + } catch (IOException e) { + logger.warn("Close httpclient failed.", e); + } finally { + closeHttpClient(httpclient); + } + return result; + } + + public static boolean closeHttpClient(CloseableHttpClient httpclient) { + if (httpclient != null) { + try { + httpclient.close(); + return true; + } catch (IOException e) { + logger.warn("Close httpclient failed.", e); + return false; + } + } + return true; + } + + public static HttpRequest getRequest(HttpMethod method, String url, HttpEntity body) { + HttpRequest request = null; + switch (method) { + case GET: + request = new HttpGet(url); + break; + case POST: + request = new HttpPost(url); + ((HttpPost) request).setEntity(body); + break; + case PUT: + request = new HttpPut(url); + ((HttpPut) request).setEntity(body); + break; + case DELETE: + request = new HttpDelete(url); + break; + default: + break; + } + return request; + } + + /** + * + * @param ip + * @param port + * @param url + * @param requestBody + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse post(String ip, int port, String url, HttpEntity requestBody) + throws ClientProtocolException, IOException { + return executeHttp(HttpMethod.POST, ip, port, url, requestBody); + } + + + + /** + * + * @param method + * @param ip + * @param port + * @param url + * @param body + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse executeHttpDeleteDeploy(HttpMethod method, String ip, Integer port, + String url) throws ClientProtocolException, IOException { + if (isTest) { + return new RestResponse(); + } + if (ip == null) { + ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); + } + if (port == null) { + port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); + } + RestResponse result = new RestResponse(); + CloseableHttpClient httpClient = HttpClients.createDefault(); + try { + httpClient = HttpClients.createDefault(); + // "http://localhost:8080/activiti-rest/service/repository/deployments/167501" + String deleteUrl = Constants.HTTP_HEADER + ip + Constants.COLON + port + url; + HttpDeleteWithBody httpDeteTest = new HttpDeleteWithBody(deleteUrl); + Gson gson = new Gson(); + RequestParameters reqPa = new RequestParameters(); + reqPa.setCasCade(true); + String jsonStr = gson.toJson(reqPa, RequestParameters.class); + StringEntity requestEntity = new StringEntity(jsonStr, "UTF-8"); + requestEntity.setContentEncoding("UTF-8"); + httpDeteTest.setHeader("Content-type", "application/json"); + httpDeteTest.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); + httpDeteTest.setEntity(new StringEntity(jsonStr)); + // returnValue = httpClient.execute(httpDeteTest, responseHandler); // 调接口获取返回值时,必须用此方法 + CloseableHttpResponse httpResonse = httpClient.execute(httpDeteTest); + if (httpResonse != null && httpResonse.getStatusLine() != null) { + int statusCode = httpResonse.getStatusLine().getStatusCode(); + result.setStatusCode(statusCode); + } + // result.setResult(EntityUtils.toString(httpResonse.getEntity())); + } catch (Exception e) { + e.printStackTrace(); + } finally { + closeHttpClient(httpClient); + } + + return result; + } + + /** + * + * @param method + * @param ip + * @param port + * @param url + * @param body + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse executeHttpStartIntance(HttpMethod method, String ip, Integer port, + String url, ActivitiStartProcessRequest object) throws ClientProtocolException, IOException { + if (isTest) { + return new RestResponse(); + } + String returnValue = ""; + RestResponse result = new RestResponse(); + CloseableHttpClient httpClient = HttpClients.createDefault(); + ResponseHandler responseHandler = new BasicResponseHandler(); + try { + httpClient = HttpClients.createDefault(); + if (ip == null) { + ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); + } + if (port == null) { + port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); + } + HttpPost httpPost = new HttpPost(Constants.HTTP_HEADER + ip + ":" + port + url); + Gson gson = new Gson(); + String jsonStr = gson.toJson(object, ActivitiStartProcessRequest.class); + StringEntity requestEntity = new StringEntity(jsonStr, "utf-8"); + requestEntity.setContentEncoding("UTF-8"); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader(Constants.AUTHORIZATION, ToolUtil.getHeader()); + httpPost.setEntity(requestEntity); + returnValue = httpClient.execute(httpPost, responseHandler); // 调接口获取返回值时,必须用此方法 + CloseableHttpResponse httpResonse = httpClient.execute(httpPost); + if (httpResonse != null && httpResonse.getStatusLine() != null) { + int statusCode = httpResonse.getStatusLine().getStatusCode(); + returnValue = EntityUtils.toString(httpResonse.getEntity(), "UTF-8"); + result.setStatusCode(statusCode); + result.setResult(returnValue); + } + } catch (Exception e) { + e.printStackTrace(); + } + + finally { + closeHttpClient(httpClient); + } + + return result; + } + + /** + * + * @param ip + * @param port + * @param url + * @param requestBody + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse post(String ip, Integer port, String url, + ActivitiStartProcessRequest requestBody) throws ClientProtocolException, IOException { + return executeHttpStartIntance(HttpMethod.POST, ip, port, url, requestBody); + } + + /** + * + * @param ip + * @param port + * @param url + * @param requestBody + * @return + * @throws ClientProtocolException + * @throws IOException + */ + public static RestResponse post(String ip, Integer port, String url) + throws ClientProtocolException, IOException { + return executeHttpDeleteDeploy(HttpMethod.DELETE, ip, port, url); + } + +} diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java index 593f382..3af7f66 100644 --- a/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java @@ -1,128 +1,102 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.externalservice.service.activitiservice; - -import java.io.IOException; -import java.io.InputStream; - -import javax.ws.rs.core.Response; - -import org.apache.http.client.ClientProtocolException; -import org.onap.workflow.common.Config; -import org.onap.workflow.common.EnumModuleUrl; -import org.onap.workflow.common.RestClient; -import org.onap.workflow.common.RestClientUtils; -import org.onap.workflow.common.RestResponse; -import org.onap.workflow.common.ToolUtil; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.onap.workflow.tools.Constants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -/** - * - * @author 10090474 - * - */ -public class ActivitiServiceConsumer { - private static final Logger logger = LoggerFactory.getLogger(ActivitiServiceConsumer.class); - private static final String DEPLOY_BPMNFILE_URL = - EnumModuleUrl.ACTIVITI.getApiRootDomain() + "/repository/deployments"; - - public static RestResponse undeploybpmnfile(String deploymentId) { - /* - * IActivitiRestService activitiProxy = getActivitiService(); - * activitiProxy.undeployBpmnFile(deploymentId); - */ - RestResponse res = deleteDeployProcess(deploymentId); - // activitiProxy.startProcess(request); - - return res; - } - - public static RestResponse startBpmnProcess(ActivitiStartProcessRequest request) { - // IActivitiRestService activitiProxy = getActivitiService(); - // startProcess( request); - // activitiProxy.startProcess(request); - return startProcess(request); - } - - public static RestResponse deleteDeployProcess(String deploymentId) { - // TODO Auto-generated method stub - RestResponse res = null; - try { - res = RestClient.post(null, null, Constants.DEPLOY_BPMNFILE_URL + "/" + deploymentId); - } catch (ClientProtocolException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - return res; - } - - public static RestResponse startProcess(ActivitiStartProcessRequest request) { - // TODO Auto-generated method stub - RestResponse res = null; - try { - res = RestClient.post(null, null, Constants.ACITIVI_START_INSTANCE_URL, request); - } catch (ClientProtocolException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - // if (Response.Status.OK.getStatusCode() == res.getStatusCode() - // || Response.Status.CREATED.getStatusCode() == res.getStatusCode()) { - // Response response = new Gson().fromJson(res.getResult(), Response.class); - // return response; - // } - return res; - } - - public static ActivitiDeployResponse deploybpmnfile(InputStream ins, String filename) - throws ClientProtocolException, IOException { - try { - return deployPackage2Activiti(ins, filename); - } finally { - ToolUtil.closeInputStream(ins); - } - } - - private static ActivitiDeployResponse deployPackage2Activiti(InputStream ins, String filename) - throws ClientProtocolException, IOException { - String ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); - int port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); - RestResponse res = RestClient.post(ip, port, DEPLOY_BPMNFILE_URL, - RestClientUtils.buildMultipartRequest(ins, filename)); - logger.info("deployfile to activiti return. {}", res); - - if (Response.Status.OK.getStatusCode() == res.getStatusCode() - || Response.Status.CREATED.getStatusCode() == res.getStatusCode()) { - ActivitiDeployResponse response = - new Gson().fromJson(res.getResult(), ActivitiDeployResponse.class); - return response; - } - return null; - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.externalservice.service.activitiservice; + +import java.io.IOException; +import java.io.InputStream; + +import javax.ws.rs.core.Response; + +import org.apache.http.client.ClientProtocolException; +import org.onap.workflow.common.Config; +import org.onap.workflow.common.EnumModuleUrl; +import org.onap.workflow.common.RestClient; +import org.onap.workflow.common.RestClientUtils; +import org.onap.workflow.common.RestResponse; +import org.onap.workflow.common.ToolUtil; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; +import org.onap.workflow.tools.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +/** + * + * @author 10090474 + * + */ +public class ActivitiServiceConsumer { + private static final Logger logger = LoggerFactory.getLogger(ActivitiServiceConsumer.class); + private static final String DEPLOY_BPMNFILE_URL = + EnumModuleUrl.ACTIVITI.getApiRootDomain() + "/repository/deployments"; + + public static RestResponse undeploybpmnfile(String deploymentId) { + return deleteDeployProcess(deploymentId); + } + + public static RestResponse startBpmnProcess(ActivitiStartProcessRequest request) { + return startProcess(request); + } + + public static RestResponse deleteDeployProcess(String deploymentId) { + RestResponse res = null; + try { + res = RestClient.post(null, null, Constants.DEPLOY_BPMNFILE_URL + "/" + deploymentId); + } catch (Exception e) { + return null; + } + + return res; + } + + public static RestResponse startProcess(ActivitiStartProcessRequest request) { + RestResponse res = null; + try { + res = RestClient.post(null, null, Constants.ACITIVI_START_INSTANCE_URL, request); + } catch (Exception e) { + return null; + } + return res; + } + + public static ActivitiDeployResponse deploybpmnfile(InputStream ins, String filename) + throws ClientProtocolException, IOException { + try { + return deployPackage2Activiti(ins, filename); + } finally { + ToolUtil.closeInputStream(ins); + } + } + + private static ActivitiDeployResponse deployPackage2Activiti(InputStream ins, String filename) + throws ClientProtocolException, IOException { + String ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); + int port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); + RestResponse res = RestClient.post(ip, port, DEPLOY_BPMNFILE_URL, + RestClientUtils.buildMultipartRequest(ins, filename)); + logger.info("deployfile to activiti return. {}", res); + + if (Response.Status.OK.getStatusCode() == res.getStatusCode() + || Response.Status.CREATED.getStatusCode() == res.getStatusCode()) { + ActivitiDeployResponse response = + new Gson().fromJson(res.getResult(), ActivitiDeployResponse.class); + return response; + } + return null; + } +} diff --git a/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientTest.java b/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientTest.java index 418cff6..691577a 100644 --- a/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientTest.java +++ b/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientTest.java @@ -1,100 +1,194 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.common; - -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpHost; -import org.apache.http.HttpRequest; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.onap.workflow.common.RestClient.HttpMethod; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - - -@PrepareForTest({RestClient.class, HttpClients.class}) -@RunWith(PowerMockRunner.class) -@PowerMockIgnore("javax.net.ssl.*") -public class RestClientTest { - private RestClient restClient; - @Before - public void setUp() throws Exception { - restClient = new RestClient(); - } - - @After - public void tearDown() throws Exception {} - - @SuppressWarnings("static-access") - @Test - public final void testExecuteHttp() throws Exception { - HttpEntity httpEntity = mock(HttpEntity.class); - PowerMockito.mockStatic(HttpClients.class); - CloseableHttpClient tt = mock(CloseableHttpClient.class); - CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); - - PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); - PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) - .thenReturn(reponse); - PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); - - restClient.executeHttp(HttpMethod.POST, "127.0.0.1", 80, "test", httpEntity); - } - - @SuppressWarnings("static-access") - @Test - public final void testExecuteHttpDeleteDeploy() throws Exception { - HttpEntity httpEntity = mock(HttpEntity.class); - PowerMockito.mockStatic(HttpClients.class); - CloseableHttpClient tt = mock(CloseableHttpClient.class); - CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); - PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); - PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) - .thenReturn(reponse); - PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); - restClient.executeHttpDeleteDeploy(HttpMethod.DELETE, "127.0.0.1", 80, "test"); - } - - @SuppressWarnings("static-access") - @Test - public final void testExecuteHttpStartIntance() throws Exception { - - ActivitiStartProcessRequest activitiStartProcessRequest = - mock(ActivitiStartProcessRequest.class); - - HttpEntity httpEntity = mock(HttpEntity.class); - PowerMockito.mockStatic(HttpClients.class); - CloseableHttpClient tt = mock(CloseableHttpClient.class); - CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); - PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); - PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) - .thenReturn(reponse); - PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); - restClient.executeHttpStartIntance(HttpMethod.POST, "127.0.0.1", 80, "test",activitiStartProcessRequest); - - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.common; + +import static org.powermock.api.mockito.PowerMockito.mock; + +import java.io.IOException; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpHost; +import org.apache.http.HttpRequest; +import org.apache.http.StatusLine; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.params.HttpParams; +import org.apache.http.protocol.HttpContext; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.workflow.WorkflowAppConfig; +import org.onap.workflow.common.RestClient.HttpMethod; +import org.onap.workflow.entity.MsbClientConfig; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + + +@PrepareForTest({HttpClients.class}) +@RunWith(PowerMockRunner.class) +public class RestClientTest { + @Test + public void testExecuteHttp() throws Exception { + HttpEntity httpEntity = mock(HttpEntity.class); + PowerMockito.mockStatic(HttpClients.class); + CloseableHttpClient httpclient = mock(CloseableHttpClient.class); + PowerMockito.when(HttpClients.createDefault()).thenReturn(httpclient); + PowerMockito.when(httpclient.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) + .thenThrow(new IOException()); + try{ + RestClient.executeHttp(HttpMethod.POST, "127.0.0.1", 80, "test", httpEntity); + }catch(IOException e){ + Assert.assertTrue(true); + } + } + + @Test + public void testExecuteHttpException() throws Exception { + HttpEntity httpEntity = mock(HttpEntity.class); + PowerMockito.mockStatic(HttpClients.class); + CloseableHttpClient tt = mock(CloseableHttpClient.class); + CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); + StatusLine sl = mock(StatusLine.class); + PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); + PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) + .thenReturn(reponse); + PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); + PowerMockito.when(reponse.getStatusLine()).thenReturn(sl); + RestClient.executeHttp(HttpMethod.POST, "127.0.0.1", 80, "test", httpEntity); + + WorkflowAppConfig workflowconfig = makeWorkFlowConfig("127.0.0.1", 80); + Config.setWorkflowAppConfig(workflowconfig); + RestClient.executeHttp(HttpMethod.POST, null, null, "test", httpEntity); + } + + private WorkflowAppConfig makeWorkFlowConfig(String msbSvrIp, int msbSvrPort) { + MsbClientConfig msbClientConfig = new MsbClientConfig(); + msbClientConfig.setMsbSvrIp(msbSvrIp); + msbClientConfig.setMsbSvrPort(msbSvrPort); + WorkflowAppConfig workflowconfig = new WorkflowAppConfig(); + workflowconfig.setMsbClientConfig(msbClientConfig); + return workflowconfig; + } + + @Test + public void testExecuteHttpDeleteDeploy() throws Exception { + HttpEntity httpEntity = mock(HttpEntity.class); + PowerMockito.mockStatic(HttpClients.class); + CloseableHttpClient tt = mock(CloseableHttpClient.class); + CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); + PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); + PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) + .thenReturn(reponse); + PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); + RestClient.executeHttpDeleteDeploy(HttpMethod.DELETE, "127.0.0.1", 80, "test"); + + WorkflowAppConfig workflowconfig = makeWorkFlowConfig("127.0.0.1", 80); + Config.setWorkflowAppConfig(workflowconfig); + RestClient.executeHttpDeleteDeploy(HttpMethod.DELETE, null, null, "test"); + } + + @Test + public void testExecuteHttpStartIntance() throws Exception { + ActivitiStartProcessRequest activitiStartProcessRequest = + mock(ActivitiStartProcessRequest.class); + + HttpEntity httpEntity = mock(HttpEntity.class); + PowerMockito.mockStatic(HttpClients.class); + CloseableHttpClient tt = mock(CloseableHttpClient.class); + CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); + PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); + PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) + .thenReturn(reponse); + PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); + RestClient.executeHttpStartIntance(HttpMethod.POST, "127.0.0.1", 80, "test",activitiStartProcessRequest); + + WorkflowAppConfig workflowconfig = makeWorkFlowConfig("127.0.0.1", 80); + Config.setWorkflowAppConfig(workflowconfig); + RestClient.executeHttpStartIntance(HttpMethod.POST, null, null, "test", activitiStartProcessRequest); + } + + @Test + public void testgetRequest() { + HttpRequest request = RestClient.getRequest(HttpMethod.GET, "/test/", null); + Assert.assertTrue (request.getRequestLine().getMethod().equals(HttpMethod.GET.toString())); + request = RestClient.getRequest(HttpMethod.POST, "/test/", null); + Assert.assertTrue (request.getRequestLine().getMethod().equals(HttpMethod.POST.toString())); + request = RestClient.getRequest(HttpMethod.DELETE, "/test/", null); + Assert.assertTrue (request.getRequestLine().getMethod().equals(HttpMethod.DELETE.toString())); + request = RestClient.getRequest(HttpMethod.PUT, "/test/", null); + Assert.assertTrue (request.getRequestLine().getMethod().equals(HttpMethod.PUT.toString())); + try { + request = RestClient.getRequest(null, "/test/", null); + } catch (NullPointerException e) { + Assert.assertTrue (true); + } + } + + @Test + public void testPost() throws Exception { + HttpEntity httpEntity = mock(HttpEntity.class); + PowerMockito.mockStatic(HttpClients.class); + CloseableHttpClient tt = mock(CloseableHttpClient.class); + CloseableHttpResponse reponse = mock(CloseableHttpResponse.class); + + PowerMockito.when(HttpClients.createDefault()).thenReturn(tt); + PowerMockito.when(tt.execute(Mockito.any(HttpHost.class), Mockito.any(HttpRequest.class))) + .thenReturn(reponse); + PowerMockito.when(reponse.getEntity()).thenReturn(httpEntity); + WorkflowAppConfig workflowconfig = makeWorkFlowConfig("127.0.0.1", 80); + Config.setWorkflowAppConfig(workflowconfig); + RestClient.post("127.0.0.1", 80, "test", null); + RestClient.post("127.0.0.1", 80, "test"); + } + + @Test + public void testCloseHttpClient(){ + Assert.assertTrue(RestClient.closeHttpClient(mock(CloseableHttpClient.class))); + Assert.assertTrue(RestClient.closeHttpClient(null)); + Assert.assertFalse(RestClient.closeHttpClient(new CloseableHttpClientTest())); + } + + public class CloseableHttpClientTest extends CloseableHttpClient{ + @Override + public void close() throws IOException { + throw new IOException(); + } + + @Override + protected CloseableHttpResponse doExecute(HttpHost target, HttpRequest request, + HttpContext context) throws IOException, ClientProtocolException { + return null; + } + + @SuppressWarnings("deprecation") + @Override + public HttpParams getParams() { + return null; + } + + @SuppressWarnings("deprecation") + @Override + public ClientConnectionManager getConnectionManager() { + return null; + } + } +} diff --git a/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientUtilsTest.java b/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientUtilsTest.java index fc7317e..238c102 100644 --- a/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientUtilsTest.java +++ b/wfenginemgrservice/src/test/java/org/onap/workflow/common/RestClientUtilsTest.java @@ -1,56 +1,56 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ - -package org.onap.workflow.common; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; - -import org.apache.http.HttpEntity; -import org.apache.http.entity.ContentType; -import org.junit.Assert; -import org.junit.Test; - -/** - * - */ -public class RestClientUtilsTest { - - @Test - public void testbuildMultipartRequest() { - String filePath = System.getProperty("java.io.tmpdir"); - String fileName = "testfile"; - File file = new File(filePath + File.separator + fileName); - InputStream is = null; - try { - if (!file.exists()) { - file.createNewFile(); - } - is = new FileInputStream(file); - HttpEntity httpentity = RestClientUtils.buildMultipartRequest(is, fileName); - Assert.assertTrue(httpentity.getContentType().getValue() - .indexOf(ContentType.MULTIPART_FORM_DATA.getMimeType()) > -1); - } catch (Exception e) { - assert (false); - } finally { - ToolUtil.closeInputStream(is); - if (file.exists()) { - file.delete(); - } - } - } -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ + +package org.onap.workflow.common; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import org.apache.http.HttpEntity; +import org.apache.http.entity.ContentType; +import org.junit.Assert; +import org.junit.Test; + +/** + * + */ +public class RestClientUtilsTest { + + @Test + public void testbuildMultipartRequest() { + String filePath = System.getProperty("java.io.tmpdir"); + String fileName = "testfile"; + File file = new File(filePath + File.separator + fileName); + InputStream is = null; + try { + if (!file.exists()) { + file.createNewFile(); + } + is = new FileInputStream(file); + HttpEntity httpentity = RestClientUtils.buildMultipartRequest(is, fileName); + Assert.assertTrue(httpentity.getContentType().getValue() + .indexOf(ContentType.MULTIPART_FORM_DATA.getMimeType()) > -1); + } catch (Exception e) { + Assert.assertFalse (false); + } finally { + ToolUtil.closeInputStream(is); + if (file.exists()) { + file.delete(); + } + } + } +} diff --git a/wfenginemgrservice/src/test/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumerTest.java b/wfenginemgrservice/src/test/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumerTest.java index f9dd990..e644626 100644 --- a/wfenginemgrservice/src/test/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumerTest.java +++ b/wfenginemgrservice/src/test/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumerTest.java @@ -1,153 +1,103 @@ -/** - * Copyright 2017 ZTE Corporation. - *

- * 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. - */ -package org.onap.workflow.externalservice.service.activitiservice; - -import com.google.gson.Gson; -import org.apache.http.HttpEntity; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.workflow.WorkflowAppConfig; -import org.onap.workflow.common.Config; -import org.onap.workflow.common.RestClient; -import org.onap.workflow.common.RestResponse; -import org.onap.workflow.entity.MsbClientConfig; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.io.IOException; -import java.io.InputStream; - -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; -import static org.mockito.Matchers.*; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.mockStatic; -import static org.powermock.api.mockito.PowerMockito.when; - -@PrepareForTest({RestClient.class, Config.class}) -@RunWith(PowerMockRunner.class) -public class ActivitiServiceConsumerTest { - - @Before - public void setUp() throws Exception { - mockStatic(RestClient.class); - } - - @Test - public void undeploybpmnfile() throws Exception { - - RestResponse restResponse = mock(RestResponse.class); - when(RestClient.post(anyString(), any(Integer.class), anyString())) - .thenReturn(restResponse); - - RestResponse response = ActivitiServiceConsumer.undeploybpmnfile("22"); - - assertThat(response, is(restResponse)); - } - - @Test - public void startBpmnProcess() throws Exception { - RestResponse restResponse = mock(RestResponse.class); - when(RestClient.post(anyString(), any(Integer.class), anyString(), - any(ActivitiStartProcessRequest.class))) - .thenReturn(restResponse); - - RestResponse response = ActivitiServiceConsumer.startBpmnProcess( - mock(ActivitiStartProcessRequest.class)); - - assertThat(response, is(restResponse)); - } - - @Test - public void testDeleteDeployProcess() throws Exception { - RestResponse restResponse = mock(RestResponse.class); - when(RestClient.post(anyString(), any(Integer.class), anyString())) - .thenReturn(restResponse); - - RestResponse response = ActivitiServiceConsumer.deleteDeployProcess("22"); - - assertThat(response, is(restResponse)); - } - - @Test - public void testDeleteDeployProcessReturnNull() throws Exception { - when(RestClient.post(anyString(), any(Integer.class), anyString())) - .thenThrow(new IOException()); - - RestResponse response = ActivitiServiceConsumer.deleteDeployProcess("22"); - - assertThat(response, is((RestResponse) null)); - } - - @Test - public void testStartProcessShouldReturnResponse() throws Exception { - RestResponse restResponse = mock(RestResponse.class); - when(RestClient.post(anyString(), any(Integer.class), anyString(), - any(ActivitiStartProcessRequest.class))) - .thenReturn(restResponse); - - RestResponse response = ActivitiServiceConsumer.startProcess( - mock(ActivitiStartProcessRequest.class)); - - assertThat(response, is(restResponse)); - } - - @Test - public void testStartProcessShouldReturnNull() throws Exception { - when(RestClient.post(anyString(), any(Integer.class), anyString(), - any(ActivitiStartProcessRequest.class))) - .thenThrow(new IOException()); - - RestResponse response = ActivitiServiceConsumer.startProcess( - mock(ActivitiStartProcessRequest.class)); - - assertThat(response, is((RestResponse) null)); - } - - @Test - public void deploybpmnfile() throws Exception { - mockStatic(Config.class); - WorkflowAppConfig workflowAppConfig = mock(WorkflowAppConfig.class); - MsbClientConfig msbClientConfig = new MsbClientConfig(); - msbClientConfig.setMsbSvrPort(2); - msbClientConfig.setMsbSvrIp("127.0.0.1"); - - when(workflowAppConfig.getMsbClientConfig()).thenReturn(msbClientConfig); - when(Config.getWorkflowAppConfig()).thenReturn(workflowAppConfig); - - RestResponse restResponse = mock(RestResponse.class); - - ActivitiDeployResponse activitiDeployResponse = new ActivitiDeployResponse(); - activitiDeployResponse.setId("2"); - activitiDeployResponse.setUrl("xxxx"); - activitiDeployResponse.setDeploymentTime("22"); - - when(restResponse.getStatusCode()).thenReturn(200); - when(restResponse.getResult()).thenReturn(new Gson().toJson(activitiDeployResponse)); - when(RestClient.post(anyString(), anyInt(), anyString(), - any(HttpEntity.class))) - .thenReturn(restResponse); - - InputStream ins = mock(InputStream.class); - ActivitiDeployResponse result = ActivitiServiceConsumer.deploybpmnfile(ins, "result"); - - assertThat(result.getId(), is(activitiDeployResponse.getId())); - } - +/** + * Copyright 2017 ZTE Corporation. + *

+ * 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. + */ +package org.onap.workflow.externalservice.service.activitiservice; + +import static org.mockito.Mockito.mock; + +import java.io.IOException; +import java.io.InputStream; + +import org.apache.http.client.ClientProtocolException; +import org.junit.Assert; +import org.junit.Test; +import org.onap.workflow.WorkflowAppConfig; +import org.onap.workflow.common.Config; +import org.onap.workflow.common.RestClient; +import org.onap.workflow.common.RestResponse; +import org.onap.workflow.entity.MsbClientConfig; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; + +public class ActivitiServiceConsumerTest { + @Test + public void undeploybpmnfile() throws ClientProtocolException, IOException { + RestClient.isTest = true; + RestResponse response = ActivitiServiceConsumer.undeploybpmnfile("22"); + Assert.assertTrue(response != null); + RestClient.isTest = false; + } + + @Test + public void startBpmnProcess() throws Exception { + RestClient.isTest = true; + RestResponse response = + ActivitiServiceConsumer.startBpmnProcess(mock(ActivitiStartProcessRequest.class)); + Assert.assertTrue(response != null); + RestClient.isTest = false; + } + + @Test + public void testDeleteDeployProcess() throws Exception { + RestClient.isTest = true; + RestResponse response = ActivitiServiceConsumer.deleteDeployProcess("22"); + Assert.assertTrue(response != null); + RestClient.isTest = false; + } + + @Test + public void testDeleteDeployProcessReturnNull() throws Exception { + RestClient.isTest = false; + RestResponse response = ActivitiServiceConsumer.deleteDeployProcess("22"); + if (response != null) { + Assert.assertTrue(response.getResult() == null); + } else { + Assert.assertTrue(response == null); + } + } + + @Test + public void testStartProcessShouldReturnResponse() throws Exception { + RestClient.isTest = true; + RestResponse response = + ActivitiServiceConsumer.startProcess(mock(ActivitiStartProcessRequest.class)); + Assert.assertTrue(response != null); + RestClient.isTest = false; + } + + @Test + public void testStartProcessShouldReturnNull() { + RestClient.isTest = false; + RestResponse response = + ActivitiServiceConsumer.startProcess(mock(ActivitiStartProcessRequest.class)); + Assert.assertTrue(response.getResult() == null); + } + + @Test + public void deploybpmnfile() throws Exception { + RestClient.isTest = true; + WorkflowAppConfig workflowAppConfig = new WorkflowAppConfig(); + MsbClientConfig msbClientConfig = new MsbClientConfig(); + msbClientConfig.setMsbSvrPort(2); + msbClientConfig.setMsbSvrIp("127.0.0.1"); + workflowAppConfig.setMsbClientConfig(msbClientConfig); + Config.setWorkflowAppConfig(workflowAppConfig); + InputStream ins = mock(InputStream.class); + ActivitiDeployResponse result = ActivitiServiceConsumer.deploybpmnfile(ins, "result"); + Assert.assertTrue(result == null); + RestClient.isTest = false; + } + } \ No newline at end of file diff --git a/wfenginemgrservice/src/test/java/org/onap/workflow/resources/WorkflowInstanceWrapperTest.java b/wfenginemgrservice/src/test/java/org/onap/workflow/resources/WorkflowInstanceWrapperTest.java index 0d08427..ea84226 100644 --- a/wfenginemgrservice/src/test/java/org/onap/workflow/resources/WorkflowInstanceWrapperTest.java +++ b/wfenginemgrservice/src/test/java/org/onap/workflow/resources/WorkflowInstanceWrapperTest.java @@ -1,95 +1,76 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * 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. - */ -package org.onap.workflow.resources; - -import static org.powermock.api.mockito.PowerMockito.mock; - -import java.io.InputStream; - -import org.glassfish.jersey.media.multipart.FormDataContentDisposition; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.workflow.common.RestResponse; -import org.onap.workflow.entity.StartProcessRequest; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; -import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; -import org.onap.workflow.externalservice.service.activitiservice.ActivitiServiceConsumer; -import org.onap.workflow.wrapper.WorkflowInstanceWrapper; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@PrepareForTest({ActivitiServiceConsumer.class}) -@RunWith(PowerMockRunner.class) -public class WorkflowInstanceWrapperTest { - - private WorkflowInstanceWrapper workflowInstanceWrapper; - - @BeforeClass - public static void setUpBeforeClass() throws Exception {} - - @AfterClass - public static void tearDownAfterClass() throws Exception {} - - @Before - public void setUp() throws Exception { - workflowInstanceWrapper = new WorkflowInstanceWrapper(); - PowerMockito.mockStatic(ActivitiServiceConsumer.class);// 3 - } - - @After - public void tearDown() throws Exception {} - - @Test - public final void testDeployBpmnFile() throws Exception { - - InputStream fileInputStream = mock(InputStream.class); - FormDataContentDisposition f = mock(FormDataContentDisposition.class); - String filename = "test"; - ActivitiDeployResponse reponse = new ActivitiDeployResponse(); - reponse.setId("123"); - reponse.setUrl("http://url"); - PowerMockito.mockStatic(ActivitiServiceConsumer.class); - PowerMockito.when(ActivitiServiceConsumer.deploybpmnfile(fileInputStream, filename)) - .thenReturn(reponse); - workflowInstanceWrapper.deployBpmnFile(filename, fileInputStream, f); - // assertThat(, is(result)); - } - - @Test - public final void testUndeployBpmnFile() throws Exception { - WorkflowInstanceWrapper.getInstance().undeployBpmnFile(null); - } - - @Test - public final void testStartProcess() throws Exception { - ActivitiStartProcessRequest startProcessRequest = new ActivitiStartProcessRequest(); - startProcessRequest.setProcessDefinitionKey("first"); - StartProcessRequest tt = new StartProcessRequest(); - tt.setProcessDefinitionKey("first"); - RestResponse reponse = new RestResponse(); - reponse.setResult("123"); - PowerMockito.mockStatic(ActivitiServiceConsumer.class); - PowerMockito.when(ActivitiServiceConsumer.startBpmnProcess(startProcessRequest)) - .thenReturn(reponse); - workflowInstanceWrapper.startProcess(tt); - } - -} +/** + * Copyright 2017 ZTE Corporation. + * + * 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. + */ +package org.onap.workflow.resources; + +import static org.powermock.api.mockito.PowerMockito.mock; + +import java.io.InputStream; + +import javax.ws.rs.core.Response; + +import org.glassfish.jersey.media.multipart.FormDataContentDisposition; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.onap.workflow.common.RestClient; +import org.onap.workflow.common.RestResponse; +import org.onap.workflow.entity.StartProcessRequest; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; +import org.onap.workflow.wrapper.WorkflowInstanceWrapper; + +public class WorkflowInstanceWrapperTest { + + private WorkflowInstanceWrapper workflowInstanceWrapper; + + @Before + public void setUp() throws Exception { + workflowInstanceWrapper = new WorkflowInstanceWrapper(); + } + + @Test + public final void testDeployBpmnFile() throws Exception { + RestClient.isTest = true; + InputStream fileInputStream = mock(InputStream.class); + FormDataContentDisposition f = mock(FormDataContentDisposition.class); + String filename = "test"; + Response reponse = workflowInstanceWrapper.deployBpmnFile(filename, fileInputStream, f); + Assert.assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), reponse.getStatus()); + RestClient.isTest = false; + } + + @Test + public final void testUndeployBpmnFile() throws Exception { + RestClient.isTest = true; + RestResponse response = WorkflowInstanceWrapper.getInstance().undeployBpmnFile(null); + if (response != null) { + Assert.assertTrue(response.getResult() == null); + } + RestClient.isTest = false; + } + + @Test + public final void testStartProcess() throws Exception { + RestClient.isTest = true; + ActivitiStartProcessRequest startProcessRequest = new ActivitiStartProcessRequest(); + startProcessRequest.setProcessDefinitionKey("first"); + StartProcessRequest tt = new StartProcessRequest(); + tt.setProcessDefinitionKey("first"); + Response reponse = workflowInstanceWrapper.startProcess(tt); + Assert.assertEquals(Response.Status.OK.getStatusCode(), reponse.getStatus()); + RestClient.isTest = false; + } + +} -- 2.16.6