From b7239e0e2859d998d5f8448879409eb30c3bc658 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 30 Sep 2020 14:32:56 -0400 Subject: Fix new sonars in drools-pdp Addressed the following sonar issues: - extract common test method - too many assertions in test method - don't always return the same value Issue-ID: POLICY-2616 Change-Id: Iab836cdcd667b35e2db9db7d6ffc7896df33e1c8 Signed-off-by: Jim Hahn --- .../drools/simulators/DMaaPSimulatorTest.java | 317 +++++---------------- 1 file changed, 78 insertions(+), 239 deletions(-) (limited to 'feature-simulators') diff --git a/feature-simulators/src/test/java/org/onap/policy/drools/simulators/DMaaPSimulatorTest.java b/feature-simulators/src/test/java/org/onap/policy/drools/simulators/DMaaPSimulatorTest.java index 0b97dd74..ad01870b 100644 --- a/feature-simulators/src/test/java/org/onap/policy/drools/simulators/DMaaPSimulatorTest.java +++ b/feature-simulators/src/test/java/org/onap/policy/drools/simulators/DMaaPSimulatorTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * feature-simulators * ================================================================================ - * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,14 +24,12 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; -import java.io.BufferedReader; -import java.io.DataOutputStream; import java.io.IOException; -import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; -import java.net.URLConnection; import java.nio.charset.StandardCharsets; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.tuple.Pair; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -72,290 +70,131 @@ public class DMaaPSimulatorTest { } @Test - public void testGetNoData() { - int timeout = 1000; - Pair response = dmaapGet("myTopicNoData", timeout); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(DMaaPSimulatorJaxRs.NO_TOPIC_MSG, response.second); + public void testGetNoData() throws IOException { + validateResponse(DMaaPSimulatorJaxRs.NO_TOPIC_MSG, dmaapGet("myTopicNoData", 1000)); } @Test - public void testSinglePost() { + public void testSinglePost() throws IOException { String myTopic = "myTopicSinglePost"; String testData = "This is some test data"; - Pair response = dmaapPost(myTopic, testData); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - response = dmaapGet(myTopic, 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(testData, response.second); + validateResponse(dmaapPost(myTopic, testData)); + + validateResponse(testData, dmaapGet(myTopic, 1000)); } @Test - public void testOneTopicMultiPost() { + public void testOneTopicMultiPost() throws IOException { String[] data = {"data point 1", "data point 2", "something random"}; String myTopic = "myTopicMultiPost"; - Pair response = dmaapPost(myTopic, data[0]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - response = dmaapPost(myTopic, data[1]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); + validateResponse(dmaapPost(myTopic, data[0])); + validateResponse(dmaapPost(myTopic, data[1])); + validateResponse(dmaapPost(myTopic, data[2])); - response = dmaapPost(myTopic, data[2]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - - response = dmaapGet(myTopic, 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[0], response.second); - - response = dmaapGet(myTopic, 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[1], response.second); - - response = dmaapGet(myTopic, 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[2], response.second); + validateResponse(data[0], dmaapGet(myTopic, 1000)); + validateResponse(data[1], dmaapGet(myTopic, 1000)); + validateResponse(data[2], dmaapGet(myTopic, 1000)); } @Test - public void testMultiTopic() { + public void testMultiTopic() throws IOException { String[][] data = {{"Topic one message one", "Topic one message two"}, {"Topic two message one", "Topic two message two"}}; String[] topics = {"topic1", "topic2"}; - Pair response = dmaapPost(topics[0], data[0][0]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - - response = dmaapGet(topics[0], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[0][0], response.second); - - response = dmaapGet(topics[1], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(DMaaPSimulatorJaxRs.NO_TOPIC_MSG, response.second); - - response = dmaapPost(topics[1], data[1][0]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - - response = dmaapPost(topics[1], data[1][1]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - - response = dmaapPost(topics[0], data[0][1]); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); - - response = dmaapGet(topics[1], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[1][0], response.second); + validateResponse(dmaapPost(topics[0], data[0][0])); - response = dmaapGet(topics[0], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[0][1], response.second); + validateResponse(data[0][0], dmaapGet(topics[0], 1000)); + validateResponse(DMaaPSimulatorJaxRs.NO_TOPIC_MSG, dmaapGet(topics[1], 1000)); - response = dmaapGet(topics[1], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(data[1][1], response.second); + validateResponse(dmaapPost(topics[1], data[1][0])); + validateResponse(dmaapPost(topics[1], data[1][1])); + validateResponse(dmaapPost(topics[0], data[0][1])); - response = dmaapGet(topics[0], 1000); - assertNotNull(response); - assertNotNull(response.first); - assertEquals(DMaaPSimulatorJaxRs.NO_DATA_MSG, response.second); + validateResponse(data[1][0], dmaapGet(topics[1], 1000)); + validateResponse(data[0][1], dmaapGet(topics[0], 1000)); + validateResponse(data[1][1], dmaapGet(topics[1], 1000)); + validateResponse(DMaaPSimulatorJaxRs.NO_DATA_MSG, dmaapGet(topics[0], 1000)); } @Test - public void testResponseCode() { - Pair response = dmaapPost("myTopic", "myTopicData"); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); + public void testResponseCode() throws IOException { + validateResponse(dmaapPost("myTopic", "myTopicData")); - response = setStatus(503); - assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); + validateResponse(setStatus(503)); + validateResponse(503, "You got response code: 503", dmaapGet("myTopic", 500)); + + validateResponse(setStatus(202)); + validateResponse(202, "myTopicData", dmaapGet("myTopic", 500)); + } - response = dmaapGet("myTopic", 500); + private void validateResponse(Pair response) { assertNotNull(response); - assertEquals(503, response.first.intValue()); - assertEquals("You got response code: 503", response.second); + assertNotNull(response.getLeft()); + assertNotNull(response.getRight()); + } - response = setStatus(202); + private void validateResponse(int expectedCode, String expectedResponse, Pair response) { assertNotNull(response); - assertNotNull(response.first); - assertNotNull(response.second); + assertEquals(expectedCode, response.getLeft().intValue()); + assertEquals(expectedResponse, response.getRight()); + } - response = dmaapGet("myTopic", 500); + private void validateResponse(String expectedResponse, Pair response) { assertNotNull(response); - assertEquals(202, response.first.intValue()); - assertEquals("myTopicData", response.second); + assertNotNull(response.getLeft()); + assertEquals(expectedResponse, response.getRight()); } - private static Pair dmaapGet(String topic, int timeout) { + private static Pair dmaapGet(String topic, int timeout) throws IOException { return dmaapGet(topic, "1", "1", timeout); } - private static Pair dmaapGet(String topic, String consumerGroup, String consumerId, int timeout) { + private static Pair dmaapGet(String topic, String consumerGroup, String consumerId, int timeout) + throws IOException { String url = "http://localhost:" + DMAAPSIM_SERVER_PORT + "/events/" + topic + "/" + consumerGroup + "/" + consumerId + "?timeout=" + timeout; - try { - URLConnection conn = new URL(url).openConnection(); - HttpURLConnection httpConn = null; - if (conn instanceof HttpURLConnection) { - httpConn = (HttpURLConnection) conn; - } else { - fail("connection not set up right"); - } - httpConn.setRequestMethod("GET"); - httpConn.connect(); - String response = ""; - try (BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()))) { - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } catch (IOException e) { - if (e.getMessage().startsWith("Server returned HTTP response code")) { - System.out.println("hi"); - BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getErrorStream())); - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } else { - fail("we got an exception: " + e); - } - } - } catch (Exception e) { - fail("we got an exception" + e); - } - - return null; + HttpURLConnection httpConn = (HttpURLConnection) new URL(url).openConnection(); + httpConn.setRequestMethod("GET"); + httpConn.connect(); + return getResponse(httpConn); } - private static Pair dmaapPost(String topic, String data) { + private static Pair dmaapPost(String topic, String data) throws IOException { String url = "http://localhost:" + DMAAPSIM_SERVER_PORT + "/events/" + topic; byte[] postData = data.getBytes(StandardCharsets.UTF_8); - try { - URLConnection conn = new URL(url).openConnection(); - HttpURLConnection httpConn = null; - if (conn instanceof HttpURLConnection) { - httpConn = (HttpURLConnection) conn; - } else { - fail("connection not set up right"); - } - httpConn.setRequestMethod("POST"); - httpConn.setDoOutput(true); - httpConn.setRequestProperty("Content-Type", "text/plain"); - httpConn.setRequestProperty("Content-Length", "" + postData.length); - httpConn.connect(); - String response = ""; - try (DataOutputStream connWriter = new DataOutputStream(httpConn.getOutputStream())) { - connWriter.write(postData); - connWriter.flush(); - } - try (BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()))) { - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } catch (IOException e) { - if (e.getMessage().startsWith("Server returned HTTP response code")) { - System.out.println("hi"); - BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getErrorStream())); - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } else { - fail("we got an exception: " + e); - } - } - } catch (Exception e) { - fail("we got an exception: " + e); - } - return null; + HttpURLConnection httpConn = (HttpURLConnection) new URL(url).openConnection(); + httpConn.setRequestMethod("POST"); + httpConn.setDoOutput(true); + httpConn.setRequestProperty("Content-Type", "text/plain"); + httpConn.setRequestProperty("Content-Length", "" + postData.length); + httpConn.connect(); + IOUtils.write(postData, httpConn.getOutputStream()); + return getResponse(httpConn); } - private static Pair setStatus(int status) { + private static Pair setStatus(int status) throws IOException { String url = "http://localhost:" + DMAAPSIM_SERVER_PORT + "/events/setStatus?statusCode=" + status; - try { - URLConnection conn = new URL(url).openConnection(); - HttpURLConnection httpConn = null; - if (conn instanceof HttpURLConnection) { - httpConn = (HttpURLConnection) conn; - } else { - fail("connection not set up right"); - } - httpConn.setRequestMethod("POST"); - httpConn.connect(); - String response = ""; - try (BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()))) { - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } catch (IOException e) { - if (e.getMessage().startsWith("Server returned HTTP response code")) { - System.out.println("hi"); - BufferedReader connReader = new BufferedReader(new InputStreamReader(httpConn.getErrorStream())); - String line; - while ((line = connReader.readLine()) != null) { - response += line; - } - httpConn.disconnect(); - return new Pair(httpConn.getResponseCode(), response); - } else { - fail("we got an exception: " + e); - } - } - } catch (Exception e) { - fail("we got an exception" + e); - } - return null; + HttpURLConnection httpConn = (HttpURLConnection) new URL(url).openConnection(); + httpConn.setRequestMethod("POST"); + httpConn.connect(); + return getResponse(httpConn); } - private static class Pair { - public final A first; - public final B second; + private static Pair getResponse(HttpURLConnection httpConn) throws IOException { + try { + String response = IOUtils.toString(httpConn.getInputStream(), StandardCharsets.UTF_8); + return Pair.of(httpConn.getResponseCode(), response); + + } catch (IOException e) { + if (e.getMessage().startsWith("Server returned HTTP response code")) { + String response = IOUtils.toString(httpConn.getErrorStream(), StandardCharsets.UTF_8); + return Pair.of(httpConn.getResponseCode(), response); + } - public Pair(A first, B second) { - this.first = first; - this.second = second; + throw e; } } } -- cgit 1.2.3-korg