From f378febfc068b564c447117d000d58fa5ebdc0b4 Mon Sep 17 00:00:00 2001 From: Marc Savy Date: Sat, 8 Aug 2015 12:52:43 +0100 Subject: [PATCH] Alter test and echo server to sort query params to avoid non-deterministic element ordering breaking the tests --- .../test-plan-data/simple/simple-echo/echo/004.resttest | 4 ++-- .../main/java/io/apiman/test/common/mock/EchoServlet.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gateway/test/src/test/resources/test-plan-data/simple/simple-echo/echo/004.resttest b/gateway/test/src/test/resources/test-plan-data/simple/simple-echo/echo/004.resttest index 90700b2d8d..3d0c235283 100644 --- a/gateway/test/src/test/resources/test-plan-data/simple/simple-echo/echo/004.resttest +++ b/gateway/test/src/test/resources/test-plan-data/simple/simple-echo/echo/004.resttest @@ -1,4 +1,4 @@ -GET /SimpleEchoTest/echo/1.0.0/path/to/app/resource?param1=value1¶m3=hello%20world¶m2=value2 admin/admin +GET /SimpleEchoTest/echo/1.0.0/path/to/app/resource?param1=value1¶m2=hello%20world¶m3=value2 admin/admin X-Custom-Header: MyValue X-API-Key: 12345 @@ -8,7 +8,7 @@ Content-Type: application/json { "method" : "GET", - "resource" : "/path/to/app/resource?param1=value1¶m3=hello+world¶m2=value2", + "resource" : "/path/to/app/resource?param1=value1¶m2=hello+world¶m3=value2", "uri" : "/path/to/app/resource", "headers" : { "X-Custom-Header" : "MyValue" diff --git a/test/common/src/main/java/io/apiman/test/common/mock/EchoServlet.java b/test/common/src/main/java/io/apiman/test/common/mock/EchoServlet.java index da3399f2d3..f5a486e670 100644 --- a/test/common/src/main/java/io/apiman/test/common/mock/EchoServlet.java +++ b/test/common/src/main/java/io/apiman/test/common/mock/EchoServlet.java @@ -15,9 +15,12 @@ */ package io.apiman.test.common.mock; +import io.apiman.common.util.SimpleStringUtils; + import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; +import java.util.Arrays; import java.util.Enumeration; import javax.servlet.ServletException; @@ -55,7 +58,9 @@ public static EchoResponse response(HttpServletRequest request, boolean withBody EchoResponse response = new EchoResponse(); response.setMethod(request.getMethod()); if (request.getQueryString() != null) { - response.setResource(request.getRequestURI() + "?" + request.getQueryString()); //$NON-NLS-1$ + String[] normalisedQueryString = request.getQueryString().split("&"); + Arrays.sort(normalisedQueryString); + response.setResource(request.getRequestURI() + "?" + SimpleStringUtils.join("&", normalisedQueryString)); //$NON-NLS-1$ } else { response.setResource(request.getRequestURI()); }