Polishing

Closes gh-29768
This commit is contained in:
rstoyanchev
2023-06-20 17:15:32 +01:00
parent b677ff20fe
commit db19f6395d
3 changed files with 37 additions and 57 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,8 @@
package org.springframework.messaging.converter;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.messaging.MessageHeaders;
@@ -32,67 +30,50 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
/**
* Test fixture for {@link org.springframework.messaging.converter.DefaultContentTypeResolver}.
* Unit tests for
* {@link org.springframework.messaging.converter.DefaultContentTypeResolver}.
*
* @author Rossen Stoyanchev
*/
public class DefaultContentTypeResolverTests {
private DefaultContentTypeResolver resolver;
private final DefaultContentTypeResolver resolver = new DefaultContentTypeResolver();
@BeforeEach
public void setup() {
this.resolver = new DefaultContentTypeResolver();
}
@Test
public void resolve() {
Map<String, Object> map = new HashMap<>();
map.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON);
MessageHeaders headers = new MessageHeaders(map);
MessageHeaders headers = headers(MimeTypeUtils.APPLICATION_JSON);
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
}
@Test
public void resolveStringContentType() {
Map<String, Object> map = new HashMap<>();
map.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE);
MessageHeaders headers = new MessageHeaders(map);
MessageHeaders headers = headers(MimeTypeUtils.APPLICATION_JSON_VALUE);
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
}
@Test
public void resolveInvalidStringContentType() {
Map<String, Object> map = new HashMap<>();
map.put(MessageHeaders.CONTENT_TYPE, "invalidContentType");
MessageHeaders headers = new MessageHeaders(map);
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() ->
this.resolver.resolve(headers));
MessageHeaders headers = headers("invalidContentType");
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() -> this.resolver.resolve(headers));
}
@Test
public void resolveUnknownHeaderType() {
Map<String, Object> map = new HashMap<>();
map.put(MessageHeaders.CONTENT_TYPE, 1);
MessageHeaders headers = new MessageHeaders(map);
assertThatIllegalArgumentException().isThrownBy(() ->
this.resolver.resolve(headers));
MessageHeaders headers = headers(1);
assertThatIllegalArgumentException().isThrownBy(() -> this.resolver.resolve(headers));
}
@Test
public void resolveNoContentTypeHeader() {
MessageHeaders headers = new MessageHeaders(Collections.<String, Object>emptyMap());
MessageHeaders headers = new MessageHeaders(Collections.emptyMap());
assertThat(this.resolver.resolve(headers)).isNull();
}
@Test
public void resolveDefaultMimeType() {
this.resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON);
MessageHeaders headers = new MessageHeaders(Collections.<String, Object>emptyMap());
MessageHeaders headers = new MessageHeaders(Collections.emptyMap());
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
}
@@ -100,9 +81,11 @@ public class DefaultContentTypeResolverTests {
@Test
public void resolveDefaultMimeTypeWithNoHeader() {
this.resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON);
MessageHeaders headers = null;
assertThat(this.resolver.resolve(null)).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
}
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
private MessageHeaders headers(Object mimeType) {
return new MessageHeaders(Map.of(MessageHeaders.CONTENT_TYPE, mimeType));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -138,10 +138,11 @@ public class MessageConverterTests {
assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)).isEqualTo(MimeTypeUtils.TEXT_PLAIN);
}
@Test
@Test // gh-29768
public void toMessageDefaultContentType() {
DefaultContentTypeResolver resolver = new DefaultContentTypeResolver();
resolver.setDefaultMimeType(MimeTypeUtils.TEXT_PLAIN);
TestMessageConverter converter = new TestMessageConverter();
converter.setContentTypeResolver(resolver);
converter.setStrictContentTypeMatch(true);
@@ -167,16 +168,12 @@ public class MessageConverterTests {
}
@Override
protected Object convertFromInternal(
Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object hint) {
return "success-from";
}
@Override
protected Object convertToInternal(
Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object hint) {
return "success-to";
}
}