You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2019/09/09 19:10:59 UTC

[jmeter] 02/02: Extract common code into helper methods

This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 7148f87e686f5c1276c70cbfe15445e0feef79f7
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Mon Sep 9 21:09:11 2019 +0200

    Extract common code into helper methods
---
 .../backend/influxdb/HttpMetricsSenderTest.java    | 82 +++++++++-------------
 1 file changed, 35 insertions(+), 47 deletions(-)

diff --git a/src/components/src/test/java/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSenderTest.java b/src/components/src/test/java/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSenderTest.java
index e20009d..9737df0 100644
--- a/src/components/src/test/java/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSenderTest.java
+++ b/src/components/src/test/java/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSenderTest.java
@@ -23,6 +23,8 @@ import static org.junit.Assert.assertNull;
 
 import java.io.IOException;
 import java.util.Objects;
+import java.util.concurrent.BlockingDeque;
+import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
@@ -38,13 +40,13 @@ import org.junit.Test;
 public class HttpMetricsSenderTest {
 
     private HttpServer server;
-    private HttpRequest request;
+    private BlockingDeque<HttpRequest> resultQueue = new LinkedBlockingDeque<>();
 
     @Before
     public void startServer() {
 
         HttpRequestHandler requestHandler = (request, response, context) -> {
-            HttpMetricsSenderTest.this.request = request;
+            HttpMetricsSenderTest.this.resultQueue.add(request);
             response.setStatusCode(HttpStatus.SC_NO_CONTENT);
         };
 
@@ -75,70 +77,56 @@ public class HttpMetricsSenderTest {
 
     @Test
     public void checkTokenDoesNotPresentInHeader() throws Exception {
-        String influxdbUrl = String.format("http://localhost:%s/api/v2/write", server.getLocalPort());
-        HttpMetricsSender metricsSender = new HttpMetricsSender();
-        metricsSender.setup(influxdbUrl, null);
-        metricsSender.addMetric("measurement", "location=west", "size=10");
-        metricsSender.writeAndSendMetrics();
+        String influxdbUrl = getInfluxDbUrl();
+        setupSenderAndSendMetric(influxdbUrl, null);
 
-        do {
-            Thread.sleep(100);
-        } while (request == null);
-
-        assertNull(
-                "The authorization header shouldn't be defined.",
-                request.getFirstHeader("Authorization"));
+        assertNoAuthHeader(resultQueue.take());
     }
 
+
     @Test
     public void checkEmptyTokenDoesNotPresentInHeader() throws Exception {
-        String influxdbUrl = String.format("http://localhost:%s/api/v2/write", server.getLocalPort());
-        HttpMetricsSender metricsSender = new HttpMetricsSender();
-        metricsSender.setup(influxdbUrl, "");
-        metricsSender.addMetric("measurement", "location=west", "size=10");
-        metricsSender.writeAndSendMetrics();
-
-        do {
-            Thread.sleep(100);
-        } while (request == null);
+        String influxdbUrl = getInfluxDbUrl();
+        setupSenderAndSendMetric(influxdbUrl, "");
 
-        assertNull(
-                "The authorization header shouldn't be defined.",
-                request.getFirstHeader("Authorization"));
+        assertNoAuthHeader(resultQueue.take());
     }
 
     @Test
     public void checkEmptyOnlyWhitespaceTokenDoesNotPresentInHeader() throws Exception {
-        String influxdbUrl = String.format("http://localhost:%s/api/v2/write", server.getLocalPort());
-        HttpMetricsSender metricsSender = new HttpMetricsSender();
-        metricsSender.setup(influxdbUrl, "  ");
-        metricsSender.addMetric("measurement", "location=west", "size=10");
-        metricsSender.writeAndSendMetrics();
+        String influxdbUrl = getInfluxDbUrl();
+        setupSenderAndSendMetric(influxdbUrl, "  ");
 
-        do {
-            Thread.sleep(100);
-        } while (request == null);
-
-        assertNull(
-                "The authorization header shouldn't be defined.",
-                request.getFirstHeader("Authorization"));
+        assertNoAuthHeader(resultQueue.take());
     }
 
     @Test
     public void checkTokenPresentInHeader() throws Exception {
-        String influxdbUrl = String.format("http://localhost:%s/api/v2/write", server.getLocalPort());
-        HttpMetricsSender metricsSender = new HttpMetricsSender();
-        metricsSender.setup(influxdbUrl, "my-token");
-        metricsSender.addMetric("measurement", "location=west", "size=10");
-        metricsSender.writeAndSendMetrics();
-
-        do {
-            Thread.sleep(100);
-        } while (request == null);
+        String influxdbUrl = getInfluxDbUrl();
+        setupSenderAndSendMetric(influxdbUrl, "my-token");
 
+        HttpRequest request = resultQueue.take();
         assertEquals(
                 "The authorization header should be: 'Token my-token'",
                 "Token my-token",
                 request.getFirstHeader("Authorization").getValue());
     }
+
+    private void setupSenderAndSendMetric(String influxdbUrl, String influxDBToken) throws Exception {
+        HttpMetricsSender metricsSender = new HttpMetricsSender();
+        metricsSender.setup(influxdbUrl, influxDBToken);
+        metricsSender.addMetric("measurement", "location=west", "size=10");
+        metricsSender.writeAndSendMetrics();
+    }
+
+    private void assertNoAuthHeader(HttpRequest request) {
+        assertNull(
+                "The authorization header shouldn't be defined.",
+                request.getFirstHeader("Authorization"));
+    }
+
+    private String getInfluxDbUrl() {
+        return String.format("http://localhost:%s/api/v2/write", Integer.valueOf(server.getLocalPort()));
+    }
+
 }