From 80488f2e675692e7c5339c94f3c5aefe5f533b44 Mon Sep 17 00:00:00 2001 From: Joss Armstrong Date: Wed, 20 Feb 2019 10:06:54 +0000 Subject: [PATCH 1/1] Test coverage in OutgoingMessage Increased coverage to 100% Issue-ID: APPC-1462 Change-Id: I4b2646da01c20e9095c617d1f82c78fae30f2418 Signed-off-by: Joss Armstrong --- .../appc/listener/demo/model/OutgoingMessage.java | 193 +++++++++++---------- .../listener/demo/model/OutgoingMessageTest.java | 91 ++++++++++ 2 files changed, 191 insertions(+), 93 deletions(-) create mode 100644 appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/demo/model/OutgoingMessageTest.java diff --git a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/demo/model/OutgoingMessage.java b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/demo/model/OutgoingMessage.java index a2417ed0c..375dde55f 100644 --- a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/demo/model/OutgoingMessage.java +++ b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/demo/model/OutgoingMessage.java @@ -5,6 +5,8 @@ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2017 Amdocs + * ================================================================================ + * Modifications Copyright (C) 2019 Ericsson * ============================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +26,7 @@ package org.onap.appc.listener.demo.model; import java.net.InetAddress; +import java.net.UnknownHostException; import java.security.SecureRandom; import java.text.SimpleDateFormat; import java.util.Date; @@ -51,20 +54,20 @@ public class OutgoingMessage extends CommonMessage { } public OutgoingMessage(IncomingMessage msg) { - setHeader(msg.getHeader()); - setPayload(msg.getPayload()); -// setId(msg.getId()); -// setOriginalRequest(msg.getRequest()); -// setRequestClient(msg.getRequestClient()); -// setRequestTime(msg.getRequestTime()); -// setVmName(msg.getVmName()); -// setFromSystem(generateFrom()); -// setResponse(Status.PENDING); -// setPolicyName(msg.getPolicyName()); -// setPolicyVersion(msg.getPolicyVersion()); -// setStartTime(msg.getStartTime()); + setHeader(msg.getHeader()); + setPayload(msg.getPayload()); + // setId(msg.getId()); + // setOriginalRequest(msg.getRequest()); + // setRequestClient(msg.getRequestClient()); + // setRequestTime(msg.getRequestTime()); + // setVmName(msg.getVmName()); + // setFromSystem(generateFrom()); + // setResponse(Status.PENDING); + // setPolicyName(msg.getPolicyName()); + // setPolicyVersion(msg.getPolicyVersion()); + // setStartTime(msg.getStartTime()); } - + private static final long serialVersionUID = -5447940920271469613L; /* * The status of the response @@ -73,20 +76,20 @@ public class OutgoingMessage extends CommonMessage { private OutStatus status; /** - * @return the status - */ - public OutStatus getStatus() { - return status; - } - - /** - * @param status the status to set - */ - public void setStatus(OutStatus status) { - this.status = status; - } - - public void updateResponseTime() { + * @return the status + */ + public OutStatus getStatus() { + return status; + } + + /** + * @param status the status to set + */ + public void setStatus(OutStatus status) { + this.status = status; + } + + public void updateResponseTime() { SecureRandom rand = new SecureRandom(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS"); df.setTimeZone(TimeZone.getTimeZone("UTC")); @@ -97,7 +100,7 @@ public class OutgoingMessage extends CommonMessage { public String generateFrom() { String name; try { - InetAddress iAddress = InetAddress.getLocalHost(); + InetAddress iAddress = getLocalHost(); name = iAddress.getCanonicalHostName(); } catch (Exception e) { // Could not get anything from the InetAddress @@ -122,72 +125,76 @@ public class OutgoingMessage extends CommonMessage { return json; } -// @Override -// public String toString() { -// return String.format("%s - %s", getId(), getResponse()); -// } - + // @Override + // public String toString() { + // return String.format("%s - %s", getId(), getResponse()); + // } + public static class OutStatus{ - @JsonProperty("Code") - private String code; - - @JsonProperty("Value") - private String value; - - /** - * @return the code - */ - public String getCode() { - return code; - } - - /** - * @param code the code to set - */ - public void setCode(String code) { - this.code = code; - } - - /** - * @return the value - */ - public String getValue() { - return value; - } - - /** - * @param value the value to set - */ - public void setValue(String value) { - this.value = value; - } - + @JsonProperty("Code") + private String code; + + @JsonProperty("Value") + private String value; + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * @return the value + */ + public String getValue() { + return value; + } + + /** + * @param value the value to set + */ + public void setValue(String value) { + this.value = value; + } + + } + + public void setResponse(Status newStatus) { + if(this.status == null){ + this.status = new OutStatus(); + return; + } + + switch (newStatus){ + case ACCEPTED: + this.status.setValue(newStatus.getValue()); + this.status.setCode("100"); + break; + + case FAILURE: + this.status.setValue(newStatus.getValue()); + this.status.setCode("500"); + break; + + case SUCCESS: + this.status.setValue(newStatus.getValue()); + this.status.setCode("400"); + break; + default: + break; + + } } - public void setResponse(Status newStatus) { - if(this.status == null){ - this.status = new OutStatus(); - } - - switch (newStatus){ - case ACCEPTED: - this.status.setValue(newStatus.getValue()); - this.status.setCode("100"); - break; - - case FAILURE: - this.status.setValue(newStatus.getValue()); - this.status.setCode("500"); - break; - - case SUCCESS: - this.status.setValue(newStatus.getValue()); - this.status.setCode("400"); - break; - default: - break; - - } - - } + protected InetAddress getLocalHost() throws UnknownHostException { + return InetAddress.getLocalHost(); + } } diff --git a/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/demo/model/OutgoingMessageTest.java b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/demo/model/OutgoingMessageTest.java new file mode 100644 index 000000000..b2838cb77 --- /dev/null +++ b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/demo/model/OutgoingMessageTest.java @@ -0,0 +1,91 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2019 Ericsson + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END========================================================= + */ + +package org.onap.appc.listener.demo.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; +import org.apache.commons.io.IOUtils; +import org.hamcrest.CoreMatchers; +import org.json.JSONObject; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.appc.listener.util.Mapper; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(Mapper.class) +public class OutgoingMessageTest { + + private IncomingMessage incomingMessage; + + @Before + public void setup() throws IOException { + String incomingStr = IOUtils.toString(getClass().getResourceAsStream("/IncomingMessagedemo.txt"), "UTF-8"); + incomingMessage = Mapper.mapOne(incomingStr, IncomingMessage.class); + } + + @Test + public void testOutgoingMessage() throws UnknownHostException { + InetAddress mockInetAddress = Mockito.mock(InetAddress.class); + Mockito.when(mockInetAddress.getCanonicalHostName()).thenReturn("TEST_CANONICAL_HOSTNAME"); + OutgoingMessage outgoingMessage = Mockito.spy(new OutgoingMessage(incomingMessage)); + PowerMockito.when(outgoingMessage.getLocalHost()).thenReturn(mockInetAddress); + outgoingMessage.updateResponseTime(); + assertEquals("appc@TEST_CANONICAL_HOSTNAME", outgoingMessage.generateFrom()); + } + + @Test + public void testOutgoingMessageUnknowHost() throws UnknownHostException { + OutgoingMessage outgoingMessage = Mockito.spy(new OutgoingMessage(incomingMessage)); + PowerMockito.when(outgoingMessage.getLocalHost()).thenThrow(new UnknownHostException()); + assertEquals("appc@UnknownHost", outgoingMessage.generateFrom()); + } + + @Test + public void testJson() { + PowerMockito.mockStatic(Mapper.class); + JSONObject mockObject = Mockito.mock(JSONObject.class); + PowerMockito.when(Mapper.toJsonObject(Mockito.any())).thenReturn(mockObject); + OutgoingMessage outgoingMessage = Mockito.spy(new OutgoingMessage(incomingMessage)); + assertEquals(mockObject, outgoingMessage.toResponse()); + } + + @Test + public void testSetResponse() { + OutgoingMessage outgoingMessage = new OutgoingMessage(incomingMessage); + outgoingMessage.setResponse(null); + assertEquals(new OutgoingMessage.OutStatus().getValue(), outgoingMessage.getStatus().getValue()); + outgoingMessage.setResponse(Status.ACCEPTED); + assertEquals("100", outgoingMessage.getStatus().getCode()); + outgoingMessage.setResponse(Status.FAILURE); + assertEquals("500", outgoingMessage.getStatus().getCode()); + outgoingMessage.setResponse(Status.SUCCESS); + assertEquals("400", outgoingMessage.getStatus().getCode()); + } +} -- 2.16.6