Update Codec API to use Map<String, Object> for hints
Issue: SPR-14557
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.core.codec;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.reactivestreams.Publisher;
|
||||
@@ -40,9 +41,12 @@ public class ByteBufferDecoderTests extends AbstractDataBufferAllocatingTestCase
|
||||
|
||||
@Test
|
||||
public void canDecode() {
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(ByteBuffer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Integer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(ByteBuffer.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(ByteBuffer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Integer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(ByteBuffer.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -52,7 +56,7 @@ public class ByteBufferDecoderTests extends AbstractDataBufferAllocatingTestCase
|
||||
Flux<DataBuffer> source = Flux.just(fooBuffer, barBuffer);
|
||||
Flux<ByteBuffer> output = this.decoder.decode(source,
|
||||
ResolvableType.forClassWithGenerics(Publisher.class, ByteBuffer.class),
|
||||
null);
|
||||
null, Collections.emptyMap());
|
||||
TestSubscriber
|
||||
.subscribe(output)
|
||||
.assertNoError()
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.core.codec;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -48,9 +49,12 @@ public class ByteBufferEncoderTests extends AbstractDataBufferAllocatingTestCase
|
||||
|
||||
@Test
|
||||
public void canEncode() {
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(ByteBuffer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Integer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(ByteBuffer.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(ByteBuffer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Integer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(ByteBuffer.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -62,7 +66,7 @@ public class ByteBufferEncoderTests extends AbstractDataBufferAllocatingTestCase
|
||||
|
||||
Flux<DataBuffer> output = this.encoder.encode(source, this.bufferFactory,
|
||||
ResolvableType.forClassWithGenerics(Publisher.class, ByteBuffer.class),
|
||||
null);
|
||||
null, Collections.emptyMap());
|
||||
TestSubscriber
|
||||
.subscribe(output)
|
||||
.assertValuesWith(b -> {
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.core.codec;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -46,18 +48,23 @@ public class CharSequenceEncoderTests extends AbstractDataBufferAllocatingTestCa
|
||||
|
||||
@Test
|
||||
public void canWrite() {
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(String.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(StringBuilder.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(StringBuffer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Integer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(String.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(String.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(StringBuilder.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(StringBuffer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Integer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(String.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void writeString() throws InterruptedException {
|
||||
Flux<String> stringFlux = Flux.just("foo");
|
||||
Flux<DataBuffer> output = Flux.from(
|
||||
this.encoder.encode(stringFlux, this.bufferFactory, null, null));
|
||||
this.encoder.encode(stringFlux, this.bufferFactory, null, null,Collections.emptyMap()));
|
||||
TestSubscriber
|
||||
.subscribe(output)
|
||||
.assertNoError()
|
||||
@@ -69,7 +76,7 @@ public class CharSequenceEncoderTests extends AbstractDataBufferAllocatingTestCa
|
||||
public void writeStringBuilder() throws InterruptedException {
|
||||
Flux<StringBuilder> stringBuilderFlux = Flux.just(new StringBuilder("foo"));
|
||||
Flux<DataBuffer> output = Flux.from(
|
||||
this.encoder.encode(stringBuilderFlux, this.bufferFactory, null, null));
|
||||
this.encoder.encode(stringBuilderFlux, this.bufferFactory, null, null, Collections.emptyMap()));
|
||||
TestSubscriber
|
||||
.subscribe(output)
|
||||
.assertNoError()
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.core.codec;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -44,14 +45,14 @@ public class ResourceDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
|
||||
@Test
|
||||
public void canDecode() throws Exception {
|
||||
assertTrue(this.decoder.canDecode(
|
||||
ResolvableType.forClass(InputStreamResource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.decoder.canDecode(
|
||||
ResolvableType.forClass(ByteArrayResource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.decoder.canDecode(
|
||||
ResolvableType.forClass(Resource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.decoder.canDecode(
|
||||
ResolvableType.forClass(InputStreamResource.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(InputStreamResource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(ByteArrayResource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(Resource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(InputStreamResource.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -61,7 +62,7 @@ public class ResourceDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
Flux<DataBuffer> source = Flux.just(fooBuffer, barBuffer);
|
||||
|
||||
Flux<Resource> result = this.decoder
|
||||
.decode(source, ResolvableType.forClass(Resource.class), null);
|
||||
.decode(source, ResolvableType.forClass(Resource.class), null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber
|
||||
.subscribe(result)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.core.codec;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -42,14 +43,14 @@ public class ResourceEncoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
|
||||
@Test
|
||||
public void canEncode() throws Exception {
|
||||
assertTrue(this.encoder.canEncode(
|
||||
ResolvableType.forClass(InputStreamResource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(
|
||||
ResolvableType.forClass(ByteArrayResource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(
|
||||
ResolvableType.forClass(Resource.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.encoder.canEncode(
|
||||
ResolvableType.forClass(InputStreamResource.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(InputStreamResource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(ByteArrayResource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(Resource.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.forClass(InputStreamResource.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -61,7 +62,7 @@ public class ResourceEncoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
|
||||
Flux<DataBuffer> output = this.encoder.encode(source, this.bufferFactory,
|
||||
ResolvableType.forClass(Resource.class),
|
||||
null);
|
||||
null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber
|
||||
.subscribe(output)
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.core.codec;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -41,18 +43,24 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
|
||||
@Test
|
||||
public void canDecode() {
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class), MimeTypeUtils.TEXT_HTML));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Integer.class), MimeTypeUtils.TEXT_PLAIN));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Object.class), MimeTypeUtils.APPLICATION_JSON));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class),
|
||||
MimeTypeUtils.TEXT_HTML, Collections.emptyMap()));
|
||||
assertTrue(this.decoder.canDecode(ResolvableType.forClass(String.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Integer.class),
|
||||
MimeTypeUtils.TEXT_PLAIN, Collections.emptyMap()));
|
||||
assertFalse(this.decoder.canDecode(ResolvableType.forClass(Object.class),
|
||||
MimeTypeUtils.APPLICATION_JSON, Collections.emptyMap()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decode() throws InterruptedException {
|
||||
this.decoder = new StringDecoder(false);
|
||||
Flux<DataBuffer> source = Flux.just(stringBuffer("foo"), stringBuffer("bar"), stringBuffer("baz"));
|
||||
Flux<String> output = this.decoder.decode(source, ResolvableType.forClass(String.class), null);
|
||||
Flux<String> output = this.decoder.decode(source, ResolvableType.forClass(String.class),
|
||||
null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output)
|
||||
.assertNoError()
|
||||
@@ -65,7 +73,8 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
DataBuffer fooBar = stringBuffer("\nfoo\r\nbar\r");
|
||||
DataBuffer baz = stringBuffer("\nbaz");
|
||||
Flux<DataBuffer> source = Flux.just(fooBar, baz);
|
||||
Flux<String> output = decoder.decode(source, ResolvableType.forClass(String.class), null);
|
||||
Flux<String> output = decoder.decode(source, ResolvableType.forClass(String.class),
|
||||
null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output)
|
||||
.assertNoError()
|
||||
@@ -75,7 +84,8 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
@Test
|
||||
public void decodeEmptyFlux() throws InterruptedException {
|
||||
Flux<DataBuffer> source = Flux.empty();
|
||||
Flux<String> output = this.decoder.decode(source, ResolvableType.forClass(String.class), null);
|
||||
Flux<String> output = this.decoder.decode(source, ResolvableType.forClass(String.class),
|
||||
null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output)
|
||||
.assertNoError()
|
||||
@@ -86,7 +96,8 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
@Test
|
||||
public void decodeEmptyString() throws InterruptedException {
|
||||
Flux<DataBuffer> source = Flux.just(stringBuffer(""));
|
||||
Flux<String> output = this.decoder.decode(source, ResolvableType.forClass(String.class), null);
|
||||
Flux<String> output = this.decoder.decode(source,
|
||||
ResolvableType.forClass(String.class), null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output).assertValues("");
|
||||
}
|
||||
@@ -95,7 +106,8 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
public void decodeToMono() throws InterruptedException {
|
||||
this.decoder = new StringDecoder(false);
|
||||
Flux<DataBuffer> source = Flux.just(stringBuffer("foo"), stringBuffer("bar"), stringBuffer("baz"));
|
||||
Mono<String> output = this.decoder.decodeToMono(source, ResolvableType.forClass(String.class), null);
|
||||
Mono<String> output = this.decoder.decodeToMono(source,
|
||||
ResolvableType.forClass(String.class), null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output)
|
||||
.assertNoError()
|
||||
@@ -106,7 +118,8 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
|
||||
@Test
|
||||
public void decodeToMonoWithEmptyFlux() throws InterruptedException {
|
||||
Flux<DataBuffer> source = Flux.empty();
|
||||
Mono<String> output = this.decoder.decodeToMono(source, ResolvableType.forClass(String.class), null);
|
||||
Mono<String> output = this.decoder.decodeToMono(source,
|
||||
ResolvableType.forClass(String.class), null, Collections.emptyMap());
|
||||
|
||||
TestSubscriber.subscribe(output)
|
||||
.assertNoError()
|
||||
|
||||
Reference in New Issue
Block a user