From ee9c5833f51d2c70a2f36e3d6252ce8af2b2ae88 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Thu, 28 Jan 2016 10:23:46 +0100 Subject: [PATCH] Update our tests to use TestSubscriber --- .../codec/support/ByteBufferDecoderTests.java | 14 ++---- .../codec/support/ByteBufferEncoderTests.java | 32 +++++-------- .../support/JacksonJsonDecoderTests.java | 12 ++--- .../support/JacksonJsonEncoderTests.java | 14 +++--- .../core/codec/support/Jaxb2DecoderTests.java | 13 ++--- .../core/codec/support/Jaxb2EncoderTests.java | 14 +++--- .../codec/support/JsonObjectDecoderTests.java | 36 +++++++------- .../codec/support/JsonObjectEncoderTests.java | 47 +++++++++++-------- .../codec/support/StringDecoderTests.java | 20 +++----- .../codec/support/StringEncoderTests.java | 9 ++-- 10 files changed, 92 insertions(+), 119 deletions(-) diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferDecoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferDecoderTests.java index bf7ae3c86c..7ef1437343 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferDecoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferDecoderTests.java @@ -17,8 +17,6 @@ package org.springframework.core.codec.support; import java.nio.ByteBuffer; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Test; import org.reactivestreams.Publisher; @@ -28,8 +26,8 @@ import org.springframework.core.ResolvableType; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -46,16 +44,14 @@ public class ByteBufferDecoderTests extends AbstractAllocatingTestCase { } @Test - public void decode() throws InterruptedException { + public void decode() { DataBuffer fooBuffer = stringBuffer("foo"); DataBuffer barBuffer = stringBuffer("bar"); Flux source = Flux.just(fooBuffer, barBuffer); Flux output = decoder.decode(source, ResolvableType.forClassWithGenerics(Publisher.class, ByteBuffer.class), null); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - - assertBufferEquals(fooBuffer, results.get(0)); - assertBufferEquals(barBuffer, results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValuesWith(b -> assertBufferEquals(fooBuffer, b), b -> assertBufferEquals(barBuffer, b)); } public void assertBufferEquals(DataBuffer expected, ByteBuffer actual) { diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferEncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferEncoderTests.java index ae4e817d64..3e95dcef1f 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferEncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/ByteBufferEncoderTests.java @@ -18,8 +18,6 @@ package org.springframework.core.codec.support; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Before; import org.junit.Test; @@ -30,8 +28,8 @@ import org.springframework.core.ResolvableType; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -53,7 +51,7 @@ public class ByteBufferEncoderTests extends AbstractAllocatingTestCase { } @Test - public void encode() throws Exception { + public void encode() { byte[] fooBytes = "foo".getBytes(StandardCharsets.UTF_8); byte[] barBytes = "bar".getBytes(StandardCharsets.UTF_8); Flux source = @@ -62,21 +60,17 @@ public class ByteBufferEncoderTests extends AbstractAllocatingTestCase { Flux output = encoder.encode(source, ResolvableType.forClassWithGenerics(Publisher.class, ByteBuffer.class), null); - List results = - StreamSupport.stream(output.toIterable().spliterator(), false) - .collect(toList()); - - assertEquals(2, results.size()); - assertEquals(3, results.get(0).readableByteCount()); - assertEquals(3, results.get(1).readableByteCount()); - - byte[] buf = new byte[3]; - results.get(0).read(buf); - assertArrayEquals(fooBytes, buf); - - results.get(1).read(buf); - assertArrayEquals(barBytes, buf); - + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValuesWith(b -> { + byte[] buf = new byte[3]; + b.read(buf); + assertArrayEquals(fooBytes, buf); + }, b -> { + byte[] buf = new byte[3]; + b.read(buf); + assertArrayEquals(barBytes, buf); + }); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonDecoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonDecoderTests.java index ca01aa945f..8f54bfee31 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonDecoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonDecoderTests.java @@ -16,9 +16,6 @@ package org.springframework.core.codec.support; -import java.util.List; -import java.util.stream.StreamSupport; - import org.junit.Test; import reactor.core.publisher.Flux; @@ -26,8 +23,8 @@ import org.springframework.core.ResolvableType; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -43,13 +40,12 @@ public class JacksonJsonDecoderTests extends AbstractAllocatingTestCase { } @Test - public void decode() throws InterruptedException { + public void decode() { Flux source = Flux.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}")); Flux output = decoder.decode(source, ResolvableType.forClass(Pojo.class), null); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("foofoo", ((Pojo) results.get(0)).getFoo()); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output).assertValues(new Pojo("foofoo", "barbar")); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonEncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonEncoderTests.java index d31ad368c2..e61dc616dc 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonEncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JacksonJsonEncoderTests.java @@ -17,8 +17,6 @@ package org.springframework.core.codec.support; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Before; import org.junit.Test; @@ -26,8 +24,8 @@ import reactor.core.publisher.Flux; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -48,17 +46,17 @@ public class JacksonJsonEncoderTests extends AbstractAllocatingTestCase { } @Test - public void write() throws InterruptedException { + public void write() { Flux source = Flux.just(new Pojo("foofoo", "barbar"), new Pojo("foofoofoo", "barbarbar")); Flux output = encoder.encode(source, null, null).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); }); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - assertEquals("{\"foo\":\"foofoo\",\"bar\":\"barbar\"}", results.get(0)); - assertEquals("{\"foo\":\"foofoofoo\",\"bar\":\"barbarbar\"}", results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\":\"foofoo\",\"bar\":\"barbar\"}", + "{\"foo\":\"foofoofoo\",\"bar\":\"barbarbar\"}"); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2DecoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2DecoderTests.java index 5422869d81..3a5fe365ee 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2DecoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2DecoderTests.java @@ -16,9 +16,6 @@ package org.springframework.core.codec.support; -import java.util.List; -import java.util.stream.StreamSupport; - import org.junit.Test; import reactor.core.publisher.Flux; @@ -26,8 +23,8 @@ import org.springframework.core.ResolvableType; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -44,13 +41,13 @@ public class Jaxb2DecoderTests extends AbstractAllocatingTestCase { } @Test - public void decode() throws InterruptedException { + public void decode() { Flux source = Flux.just(stringBuffer( "barbarfoofoo")); Flux output = decoder.decode(source, ResolvableType.forClass(Pojo.class), null); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("foofoo", ((Pojo) results.get(0)).getFoo()); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues(new Pojo("foofoo", "barbar")); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2EncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2EncoderTests.java index 1d9dec12a4..a9ef2ea615 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2EncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/Jaxb2EncoderTests.java @@ -17,8 +17,6 @@ package org.springframework.core.codec.support; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Before; import org.junit.Test; @@ -26,8 +24,8 @@ import reactor.core.publisher.Flux; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -49,17 +47,17 @@ public class Jaxb2EncoderTests extends AbstractAllocatingTestCase { } @Test - public void encode() throws InterruptedException { + public void encode() { Flux source = Flux.just(new Pojo("foofoo", "barbar"), new Pojo("foofoofoo", "barbarbar")); Flux output = encoder.encode(source, null, null).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); }); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - assertEquals("barbarfoofoo", results.get(0)); - assertEquals("barbarbarfoofoofoo", results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("barbarfoofoo", + "barbarbarfoofoofoo"); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectDecoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectDecoderTests.java index 3bb4f66f63..e3026f7d1d 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectDecoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectDecoderTests.java @@ -17,16 +17,13 @@ package org.springframework.core.codec.support; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Test; import reactor.core.publisher.Flux; import org.springframework.core.io.buffer.DataBuffer; -import static java.util.stream.Collectors.toList; -import static org.junit.Assert.assertEquals; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -35,15 +32,15 @@ public class JsonObjectDecoderTests extends AbstractAllocatingTestCase { @Test - public void decodeSingleChunkToJsonObject() throws InterruptedException { + public void decodeSingleChunkToJsonObject() { JsonObjectDecoder decoder = new JsonObjectDecoder(allocator); Flux source = Flux.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}")); Flux output = decoder.decode(source, null, null).map(JsonObjectDecoderTests::toString); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", results.get(0)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}"); } @Test @@ -53,9 +50,9 @@ public class JsonObjectDecoderTests extends AbstractAllocatingTestCase { stringBuffer(", \"bar\": \"barbar\"}")); Flux output = decoder.decode(source, null, null).map(JsonObjectDecoderTests::toString); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", results.get(0)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}"); } @Test @@ -65,11 +62,10 @@ public class JsonObjectDecoderTests extends AbstractAllocatingTestCase { "[{\"foo\": \"foofoo\", \"bar\": \"barbar\"},{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}]")); Flux output = decoder.decode(source, null, null).map(JsonObjectDecoderTests::toString); - - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - assertEquals("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", results.get(0)); - assertEquals("{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}", results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", + "{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}"); } @Test @@ -80,10 +76,10 @@ public class JsonObjectDecoderTests extends AbstractAllocatingTestCase { ": \"barbar\"},{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}]")); Flux output = decoder.decode(source, null, null).map(JsonObjectDecoderTests::toString); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - assertEquals("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", results.get(0)); - assertEquals("{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}", results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", + "{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}"); } private static String toString(DataBuffer buffer) { diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectEncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectEncoderTests.java index 04034ea0b1..64116126e9 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectEncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/JsonObjectEncoderTests.java @@ -25,7 +25,7 @@ import reactor.core.publisher.Mono; import org.springframework.core.io.buffer.DataBuffer; -import static org.junit.Assert.assertEquals; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -43,27 +43,28 @@ public class JsonObjectEncoderTests extends AbstractAllocatingTestCase { public void encodeSingleElementFlux() throws InterruptedException { Flux source = Flux.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}")); - Iterable results = Flux.from(encoder.encode(source, null, null)).map(chunk -> { + Flux output = Flux.from(encoder.encode(source, null, null)).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); - }).toIterable(); - String result = String.join("", results); - assertEquals("[{\"foo\": \"foofoo\", \"bar\": \"barbar\"}]", result); + }); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("[", "{\"foo\": \"foofoo\", \"bar\": \"barbar\"}]"); } - @Test public void encodeSingleElementMono() throws InterruptedException { Mono source = Mono.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}")); - Iterable results = Flux.from(encoder.encode(source, null, null)).map(chunk -> { + Flux output = Flux.from(encoder.encode(source, null, null)).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); - }).toIterable(); - String result = String.join("", results); - assertEquals("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}", result); + }); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}"); } @Test @@ -71,13 +72,16 @@ public class JsonObjectEncoderTests extends AbstractAllocatingTestCase { Flux source = Flux.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}"), stringBuffer("{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}")); - Iterable results = Flux.from(encoder.encode(source, null, null)).map(chunk -> { + Flux output = Flux.from(encoder.encode(source, null, null)).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); - }).toIterable(); - String result = String.join("", results); - assertEquals("[{\"foo\": \"foofoo\", \"bar\": \"barbar\"},{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}]", result); + }); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("[", + "{\"foo\": \"foofoo\", \"bar\": \"barbar\"},", + "{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}]"); } @Test @@ -85,16 +89,19 @@ public class JsonObjectEncoderTests extends AbstractAllocatingTestCase { Flux source = Flux.just(stringBuffer("{\"foo\": \"foofoo\", \"bar\": \"barbar\"}"), stringBuffer("{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"}"), - stringBuffer( - "{\"foo\": \"foofoofoofoo\", \"bar\": \"barbarbarbar\"}") + stringBuffer("{\"foo\": \"foofoofoofoo\", \"bar\": \"barbarbarbar\"}") ); - Iterable results = Flux.from(encoder.encode(source, null, null)).map(chunk -> { + Flux output = Flux.from(encoder.encode(source, null, null)).map(chunk -> { byte[] b = new byte[chunk.readableByteCount()]; chunk.read(b); return new String(b, StandardCharsets.UTF_8); - }).toIterable(); - String result = String.join("", results); - assertEquals("[{\"foo\": \"foofoo\", \"bar\": \"barbar\"},{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"},{\"foo\": \"foofoofoofoo\", \"bar\": \"barbarbarbar\"}]", result); + }); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output) + .assertValues("[", + "{\"foo\": \"foofoo\", \"bar\": \"barbar\"},", + "{\"foo\": \"foofoofoo\", \"bar\": \"barbarbar\"},", + "{\"foo\": \"foofoofoofoo\", \"bar\": \"barbarbarbar\"}]"); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringDecoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringDecoderTests.java index 937bdc8290..2a87fe86be 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringDecoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringDecoderTests.java @@ -16,21 +16,18 @@ package org.springframework.core.codec.support; -import java.util.List; -import java.util.stream.StreamSupport; - import org.junit.Before; import org.junit.Test; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.core.converter.RxJava1SingleConverter; +import reactor.core.test.TestSubscriber; import rx.Single; import org.springframework.core.ResolvableType; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; /** @@ -58,9 +55,8 @@ public class StringDecoderTests extends AbstractAllocatingTestCase { public void decode() throws InterruptedException { Flux source = Flux.just(stringBuffer("foo"), stringBuffer("bar")); Flux output = this.decoder.decode(source, ResolvableType.forClassWithGenerics(Flux.class, String.class), null); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("foobar", results.get(0)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output).assertValues("foobar"); } @Test @@ -68,10 +64,8 @@ public class StringDecoderTests extends AbstractAllocatingTestCase { StringDecoder decoder = new StringDecoder(allocator, false); Flux source = Flux.just(stringBuffer("foo"), stringBuffer("bar")); Flux output = decoder.decode(source, ResolvableType.forClassWithGenerics(Flux.class, String.class), null); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(2, results.size()); - assertEquals("foo", results.get(0)); - assertEquals("bar", results.get(1)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output).assertValues("foo", "bar"); } @Test @@ -80,8 +74,8 @@ public class StringDecoderTests extends AbstractAllocatingTestCase { Mono mono = Mono.from(this.decoder.decode(source, ResolvableType.forClassWithGenerics(Mono.class, String.class), MediaType.TEXT_PLAIN)); - String result = mono.get(); - assertEquals("foobar", result); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(mono).assertValues("foobar"); } @Test diff --git a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringEncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringEncoderTests.java index e1a509743e..415f2883d2 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringEncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/codec/support/StringEncoderTests.java @@ -17,8 +17,6 @@ package org.springframework.core.codec.support; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.stream.StreamSupport; import org.junit.Before; import org.junit.Test; @@ -29,8 +27,8 @@ import reactor.core.publisher.Flux; import org.springframework.core.ResolvableType; import org.springframework.http.MediaType; -import static java.util.stream.Collectors.toList; import static org.junit.Assert.*; +import reactor.core.test.TestSubscriber; /** * @author Sebastien Deleuze @@ -59,9 +57,8 @@ public class StringEncoderTests extends AbstractAllocatingTestCase { chunk.read(b); return new String(b, StandardCharsets.UTF_8); }); - List results = StreamSupport.stream(output.toIterable().spliterator(), false).collect(toList()); - assertEquals(1, results.size()); - assertEquals("foo", results.get(0)); + TestSubscriber testSubscriber = new TestSubscriber<>(); + testSubscriber.bindTo(output).assertValues("foo"); } }