From 586de30212a99fed72750aa57d335f91233646c1 Mon Sep 17 00:00:00 2001 From: Pierre-Jean Vardanega Date: Fri, 26 Jan 2018 14:41:18 +0100 Subject: [PATCH] Convert query parameters list as param=1¶m=2 instead of param=1,2 Closes gh-477 --- .../restassured/RestAssuredRequestConverter.java | 12 ++++++++++-- .../restassured3/RestAssuredRequestConverter.java | 12 ++++++++++-- .../RestAssuredRequestConverterTests.java | 7 ++++--- .../RestAssuredRequestConverterTests.java | 7 ++++--- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java index 11e39984..101564b0 100644 --- a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java +++ b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2017 the original author or authors. + * Copyright 2014-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -141,7 +141,15 @@ class RestAssuredRequestConverter private Parameters extractParameters(FilterableRequestSpecification requestSpec) { Parameters parameters = new Parameters(); for (Entry entry : requestSpec.getQueryParams().entrySet()) { - parameters.add(entry.getKey(), entry.getValue().toString()); + if (entry.getValue() instanceof Collection) { + Collection queryParams = ((Collection) entry.getValue()); + for (Object queryParam : queryParams) { + parameters.add(entry.getKey(), queryParam.toString()); + } + } + else { + parameters.add(entry.getKey(), entry.getValue().toString()); + } } for (Entry entry : requestSpec.getRequestParams().entrySet()) { parameters.add(entry.getKey(), entry.getValue().toString()); diff --git a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java index e82fa966..a2cb3a74 100644 --- a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java +++ b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2017 the original author or authors. + * Copyright 2014-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -140,7 +140,15 @@ class RestAssuredRequestConverter private Parameters extractParameters(FilterableRequestSpecification requestSpec) { Parameters parameters = new Parameters(); for (Entry entry : requestSpec.getQueryParams().entrySet()) { - parameters.add(entry.getKey(), entry.getValue().toString()); + if (entry.getValue() instanceof Collection) { + Collection queryParams = ((Collection) entry.getValue()); + for (Object queryParam : queryParams) { + parameters.add(entry.getKey(), queryParam.toString()); + } + } + else { + parameters.add(entry.getKey(), entry.getValue().toString()); + } } for (Entry entry : requestSpec.getRequestParams().entrySet()) { parameters.add(entry.getKey(), entry.getValue().toString()); diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java index c9220e01..b0548e8c 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2017 the original author or authors. + * Copyright 2014-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,11 +91,12 @@ public class RestAssuredRequestConverterTests { @Test public void queryStringFromUrlParameters() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()); - requestSpec.get("/?foo=bar"); + requestSpec.get("/?foo=bar&foo=qix"); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParameters().size(), is(1)); - assertThat(request.getParameters().get("foo"), is(equalTo(Arrays.asList("bar")))); + assertThat(request.getParameters().get("foo"), + is(equalTo(Arrays.asList("bar", "qix")))); } @Test diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java index b044fb0a..ed239f3e 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2017 the original author or authors. + * Copyright 2014-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,11 +91,12 @@ public class RestAssuredRequestConverterTests { @Test public void queryStringFromUrlParameters() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()); - requestSpec.get("/?foo=bar"); + requestSpec.get("/?foo=bar&foo=qix"); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParameters().size(), is(1)); - assertThat(request.getParameters().get("foo"), is(equalTo(Arrays.asList("bar")))); + assertThat(request.getParameters().get("foo"), + is(equalTo(Arrays.asList("bar", "qix")))); } @Test