|
|
|
@ -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"); |
|
|
|
* 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. |
|
|
|
@ -17,10 +17,8 @@ |
|
|
|
package org.springframework.messaging.converter; |
|
|
|
package org.springframework.messaging.converter; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.messaging.MessageHeaders; |
|
|
|
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; |
|
|
|
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 |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class DefaultContentTypeResolverTests { |
|
|
|
public class DefaultContentTypeResolverTests { |
|
|
|
|
|
|
|
|
|
|
|
private DefaultContentTypeResolver resolver; |
|
|
|
private final DefaultContentTypeResolver resolver = new DefaultContentTypeResolver(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@BeforeEach |
|
|
|
|
|
|
|
public void setup() { |
|
|
|
|
|
|
|
this.resolver = new DefaultContentTypeResolver(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolve() { |
|
|
|
public void resolve() { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
MessageHeaders headers = headers(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
map.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON); |
|
|
|
|
|
|
|
MessageHeaders headers = new MessageHeaders(map); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveStringContentType() { |
|
|
|
public void resolveStringContentType() { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
MessageHeaders headers = headers(MimeTypeUtils.APPLICATION_JSON_VALUE); |
|
|
|
map.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE); |
|
|
|
|
|
|
|
MessageHeaders headers = new MessageHeaders(map); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveInvalidStringContentType() { |
|
|
|
public void resolveInvalidStringContentType() { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
MessageHeaders headers = headers("invalidContentType"); |
|
|
|
map.put(MessageHeaders.CONTENT_TYPE, "invalidContentType"); |
|
|
|
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() -> this.resolver.resolve(headers)); |
|
|
|
MessageHeaders headers = new MessageHeaders(map); |
|
|
|
|
|
|
|
assertThatExceptionOfType(InvalidMimeTypeException.class).isThrownBy(() -> |
|
|
|
|
|
|
|
this.resolver.resolve(headers)); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveUnknownHeaderType() { |
|
|
|
public void resolveUnknownHeaderType() { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
MessageHeaders headers = headers(1); |
|
|
|
map.put(MessageHeaders.CONTENT_TYPE, 1); |
|
|
|
assertThatIllegalArgumentException().isThrownBy(() -> this.resolver.resolve(headers)); |
|
|
|
MessageHeaders headers = new MessageHeaders(map); |
|
|
|
|
|
|
|
assertThatIllegalArgumentException().isThrownBy(() -> |
|
|
|
|
|
|
|
this.resolver.resolve(headers)); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveNoContentTypeHeader() { |
|
|
|
public void resolveNoContentTypeHeader() { |
|
|
|
MessageHeaders headers = new MessageHeaders(Collections.<String, Object>emptyMap()); |
|
|
|
MessageHeaders headers = new MessageHeaders(Collections.emptyMap()); |
|
|
|
|
|
|
|
|
|
|
|
assertThat(this.resolver.resolve(headers)).isNull(); |
|
|
|
assertThat(this.resolver.resolve(headers)).isNull(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveDefaultMimeType() { |
|
|
|
public void resolveDefaultMimeType() { |
|
|
|
this.resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
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); |
|
|
|
assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -100,9 +81,11 @@ public class DefaultContentTypeResolverTests { |
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void resolveDefaultMimeTypeWithNoHeader() { |
|
|
|
public void resolveDefaultMimeTypeWithNoHeader() { |
|
|
|
this.resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON); |
|
|
|
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)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|