Merge branch '5.2.x'

This commit is contained in:
Sam Brannen 2020-05-28 14:45:44 +02:00
commit 967478b3a7
2 changed files with 42 additions and 20 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -142,10 +142,10 @@ abstract class BaseCodecConfigurer implements CodecConfigurer {
* @since 5.1.12 * @since 5.1.12
*/ */
DefaultCustomCodecs(DefaultCustomCodecs other) { DefaultCustomCodecs(DefaultCustomCodecs other) {
other.typedReaders.putAll(this.typedReaders); this.typedReaders.putAll(other.typedReaders);
other.typedWriters.putAll(this.typedWriters); this.typedWriters.putAll(other.typedWriters);
other.objectReaders.putAll(this.objectReaders); this.objectReaders.putAll(other.objectReaders);
other.objectWriters.putAll(this.objectWriters); this.objectWriters.putAll(other.objectWriters);
} }
@Override @Override

View File

@ -69,7 +69,7 @@ import static org.mockito.Mockito.mock;
* @author Rossen Stoyanchev * @author Rossen Stoyanchev
* @author Sebastien Deleuze * @author Sebastien Deleuze
*/ */
public class CodecConfigurerTests { class CodecConfigurerTests {
private final CodecConfigurer configurer = new TestCodecConfigurer(); private final CodecConfigurer configurer = new TestCodecConfigurer();
@ -77,7 +77,7 @@ public class CodecConfigurerTests {
@Test @Test
public void defaultReaders() { void defaultReaders() {
List<HttpMessageReader<?>> readers = this.configurer.getReaders(); List<HttpMessageReader<?>> readers = this.configurer.getReaders();
assertThat(readers.size()).isEqualTo(12); assertThat(readers.size()).isEqualTo(12);
assertThat(getNextDecoder(readers).getClass()).isEqualTo(ByteArrayDecoder.class); assertThat(getNextDecoder(readers).getClass()).isEqualTo(ByteArrayDecoder.class);
@ -95,7 +95,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void defaultWriters() { void defaultWriters() {
List<HttpMessageWriter<?>> writers = this.configurer.getWriters(); List<HttpMessageWriter<?>> writers = this.configurer.getWriters();
assertThat(writers.size()).isEqualTo(11); assertThat(writers.size()).isEqualTo(11);
assertThat(getNextEncoder(writers).getClass()).isEqualTo(ByteArrayEncoder.class); assertThat(getNextEncoder(writers).getClass()).isEqualTo(ByteArrayEncoder.class);
@ -112,7 +112,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void defaultAndCustomReaders() { void defaultAndCustomReaders() {
Decoder<?> customDecoder1 = mock(Decoder.class); Decoder<?> customDecoder1 = mock(Decoder.class);
Decoder<?> customDecoder2 = mock(Decoder.class); Decoder<?> customDecoder2 = mock(Decoder.class);
@ -153,7 +153,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void defaultAndCustomWriters() { void defaultAndCustomWriters() {
Encoder<?> customEncoder1 = mock(Encoder.class); Encoder<?> customEncoder1 = mock(Encoder.class);
Encoder<?> customEncoder2 = mock(Encoder.class); Encoder<?> customEncoder2 = mock(Encoder.class);
@ -193,7 +193,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void defaultsOffCustomReaders() { void defaultsOffCustomReaders() {
Decoder<?> customDecoder1 = mock(Decoder.class); Decoder<?> customDecoder1 = mock(Decoder.class);
Decoder<?> customDecoder2 = mock(Decoder.class); Decoder<?> customDecoder2 = mock(Decoder.class);
@ -224,7 +224,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void defaultsOffWithCustomWriters() { void defaultsOffWithCustomWriters() {
Encoder<?> customEncoder1 = mock(Encoder.class); Encoder<?> customEncoder1 = mock(Encoder.class);
Encoder<?> customEncoder2 = mock(Encoder.class); Encoder<?> customEncoder2 = mock(Encoder.class);
@ -255,7 +255,7 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void encoderDecoderOverrides() { void encoderDecoderOverrides() {
Jackson2JsonDecoder jacksonDecoder = new Jackson2JsonDecoder(); Jackson2JsonDecoder jacksonDecoder = new Jackson2JsonDecoder();
Jackson2JsonEncoder jacksonEncoder = new Jackson2JsonEncoder(); Jackson2JsonEncoder jacksonEncoder = new Jackson2JsonEncoder();
Jackson2SmileDecoder smileDecoder = new Jackson2SmileDecoder(); Jackson2SmileDecoder smileDecoder = new Jackson2SmileDecoder();
@ -285,23 +285,45 @@ public class CodecConfigurerTests {
} }
@Test @Test
public void cloneCustomCodecs() { void cloneEmptyCustomCodecs() {
this.configurer.registerDefaults(false); this.configurer.registerDefaults(false);
CodecConfigurer clone = this.configurer.clone(); assertThat(this.configurer.getReaders()).isEmpty();
assertThat(this.configurer.getWriters()).isEmpty();
CodecConfigurer clone = this.configurer.clone();
clone.customCodecs().register(new Jackson2JsonEncoder()); clone.customCodecs().register(new Jackson2JsonEncoder());
clone.customCodecs().register(new Jackson2JsonDecoder()); clone.customCodecs().register(new Jackson2JsonDecoder());
clone.customCodecs().register(new ServerSentEventHttpMessageReader()); clone.customCodecs().register(new ServerSentEventHttpMessageReader());
clone.customCodecs().register(new ServerSentEventHttpMessageWriter()); clone.customCodecs().register(new ServerSentEventHttpMessageWriter());
assertThat(this.configurer.getReaders().size()).isEqualTo(0); assertThat(this.configurer.getReaders()).isEmpty();
assertThat(this.configurer.getWriters().size()).isEqualTo(0); assertThat(this.configurer.getWriters()).isEmpty();
assertThat(clone.getReaders().size()).isEqualTo(2); assertThat(clone.getReaders()).hasSize(2);
assertThat(clone.getWriters().size()).isEqualTo(2); assertThat(clone.getWriters()).hasSize(2);
} }
@Test @Test
public void cloneDefaultCodecs() { void cloneCustomCodecs() {
this.configurer.registerDefaults(false);
assertThat(this.configurer.getReaders()).isEmpty();
assertThat(this.configurer.getWriters()).isEmpty();
this.configurer.customCodecs().register(new Jackson2JsonEncoder());
this.configurer.customCodecs().register(new Jackson2JsonDecoder());
this.configurer.customCodecs().register(new ServerSentEventHttpMessageReader());
this.configurer.customCodecs().register(new ServerSentEventHttpMessageWriter());
assertThat(this.configurer.getReaders()).hasSize(2);
assertThat(this.configurer.getWriters()).hasSize(2);
CodecConfigurer clone = this.configurer.clone();
assertThat(this.configurer.getReaders()).hasSize(2);
assertThat(this.configurer.getWriters()).hasSize(2);
assertThat(clone.getReaders()).hasSize(2);
assertThat(clone.getWriters()).hasSize(2);
}
@Test
void cloneDefaultCodecs() {
CodecConfigurer clone = this.configurer.clone(); CodecConfigurer clone = this.configurer.clone();
Jackson2JsonDecoder jacksonDecoder = new Jackson2JsonDecoder(); Jackson2JsonDecoder jacksonDecoder = new Jackson2JsonDecoder();