From 568a1d6f871b14d035808e113b30f81fb8993cd3 Mon Sep 17 00:00:00 2001 From: slavisa-baeldung Date: Sat, 29 Oct 2016 08:28:29 +0200 Subject: [PATCH] BAEL-276 - collectingAndThen --- .../baeldung/encoderdecoder/EncoderDecoderTest.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderTest.java b/core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderTest.java index 15d543aee8..2a04088f68 100644 --- a/core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderTest.java +++ b/core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderTest.java @@ -16,6 +16,9 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; +import static java.util.stream.Collectors.collectingAndThen; +import static java.util.stream.Collectors.joining; + public class EncoderDecoderTest { private static final Logger LOGGER = LoggerFactory.getLogger(EncoderDecoderTest.class); @@ -58,11 +61,9 @@ public class EncoderDecoderTest { requestParams.put("key2", "value@!$2"); requestParams.put("key3", "value%3"); - String encodedQuery = requestParams.keySet().stream() + String encodedURL = requestParams.keySet().stream() .map(key -> key + "=" + encodeValue(requestParams.get(key))) - .collect(Collectors.joining("&")); - - String encodedURL = "http://www.baeldung.com?" + encodedQuery; + .collect(collectingAndThen(joining("&"), params -> "http://www.baeldung.com?" + params)); Assert.assertThat(testUrl, CoreMatchers.is(encodedURL)); } @@ -70,11 +71,12 @@ public class EncoderDecoderTest { @Test public void givenRequestParam_whenUTF8Scheme_thenDecodeRequestParams() throws Exception { URL url = new URL(testUrl); + String query = url.getQuery(); String decodedQuery = Arrays.stream(query.split("&")) .map(param -> param.split("=")[0] + "=" + decode(param.split("=")[1])) - .collect(Collectors.joining("&")); + .collect(joining("&")); Assert.assertEquals( "http://www.baeldung.com?key1=value 1&key2=value@!$2&key3=value%3", url.getProtocol() + "://" + url.getHost() + "?" + decodedQuery);