提交 7ed03d01 编写于 作者: S Sebastien Deleuze

Fix JacksonJsonEncoder for streams with more than 2 elements

上级 c1518c3f
...@@ -83,7 +83,7 @@ public class JacksonJsonEncoder extends AbstractEncoder<Object> { ...@@ -83,7 +83,7 @@ public class JacksonJsonEncoder extends AbstractEncoder<Object> {
Mono<DataBuffer> startArray = Mono<DataBuffer> startArray =
Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER)); Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER));
Flux<DataBuffer> arraySeparators = Flux<DataBuffer> arraySeparators =
Mono.just(bufferFactory.wrap(SEPARATOR_BUFFER)).repeat(); Mono.fromSupplier(() -> bufferFactory.wrap(SEPARATOR_BUFFER)).repeat();
Mono<DataBuffer> endArray = Mono<DataBuffer> endArray =
Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER)); Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER));
......
...@@ -52,7 +52,11 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas ...@@ -52,7 +52,11 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas
@Test @Test
public void encode() { public void encode() {
Flux<Pojo> source = Flux.just(new Pojo("foofoo", "barbar"), new Pojo("foofoofoo", "barbarbar")); Flux<Pojo> source = Flux.just(
new Pojo("foo", "bar"),
new Pojo("foofoo", "barbar"),
new Pojo("foofoofoo", "barbarbar")
);
ResolvableType type = ResolvableType.forClass(Pojo.class); ResolvableType type = ResolvableType.forClass(Pojo.class);
Flux<DataBuffer> output = Flux<DataBuffer> output =
...@@ -62,11 +66,15 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas ...@@ -62,11 +66,15 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas
.subscribe(output) .subscribe(output)
.assertComplete() .assertComplete()
.assertNoError() .assertNoError()
.assertValuesWith(stringConsumer("["), .assertValuesWith(
stringConsumer("["),
stringConsumer("{\"foo\":\"foo\",\"bar\":\"bar\"}"),
stringConsumer(","),
stringConsumer("{\"foo\":\"foofoo\",\"bar\":\"barbar\"}"), stringConsumer("{\"foo\":\"foofoo\",\"bar\":\"barbar\"}"),
stringConsumer(","), stringConsumer(","),
stringConsumer("{\"foo\":\"foofoofoo\",\"bar\":\"barbarbar\"}"), stringConsumer("{\"foo\":\"foofoofoo\",\"bar\":\"barbarbar\"}"),
stringConsumer("]")); stringConsumer("]")
);
} }
@Test @Test
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册