提交 d2e6d026 编写于 作者: S Sam Brannen

Preliminary tests for multipart/related & multipart/mixed in RestTemplate

See gh-23159
上级 e86b937f
......@@ -21,6 +21,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
......@@ -48,8 +49,12 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
/**
* Unit tests for {@link FormHttpMessageConverter} and
* {@link AllEncompassingFormHttpMessageConverter}.
*
* @author Arjen Poutsma
* @author Rossen Stoyanchev
* @author Sam Brannen
*/
public class FormHttpMessageConverterTests {
......@@ -58,21 +63,31 @@ public class FormHttpMessageConverterTests {
@Test
public void canRead() {
assertThat(this.converter.canRead(MultiValueMap.class,
new MediaType("application", "x-www-form-urlencoded"))).isTrue();
assertThat(this.converter.canRead(MultiValueMap.class,
new MediaType("multipart", "form-data"))).isFalse();
assertThat(this.converter.canRead(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"))).isTrue();
assertThat(this.converter.canRead(MultiValueMap.class, new MediaType("multipart", "form-data"))).isFalse();
}
@Test
public void canWrite() {
assertThat(this.converter.canWrite(MultiValueMap.class,
new MediaType("application", "x-www-form-urlencoded"))).isTrue();
assertThat(this.converter.canWrite(MultiValueMap.class,
new MediaType("multipart", "form-data"))).isTrue();
assertThat(this.converter.canWrite(MultiValueMap.class,
new MediaType("multipart", "form-data", StandardCharsets.UTF_8))).isTrue();
assertThat(this.converter.canWrite(MultiValueMap.class, MediaType.ALL)).isTrue();
assertCanWrite(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded"));
assertCanWrite(MultiValueMap.class, new MediaType("multipart", "form-data"));
assertCanWrite(MultiValueMap.class, new MediaType("multipart", "form-data", StandardCharsets.UTF_8));
assertCanWrite(MultiValueMap.class, MediaType.ALL);
}
@Test
public void canWriteMultipartMixedAndMultipartRelated() {
List<MediaType> supportedMediaTypes = new ArrayList<>(this.converter.getSupportedMediaTypes());
supportedMediaTypes.add(new MediaType("multipart", "mixed"));
supportedMediaTypes.add(new MediaType("multipart", "related"));
this.converter.setSupportedMediaTypes(supportedMediaTypes);
assertCanWrite(MultiValueMap.class, new MediaType("multipart", "mixed"));
assertCanWrite(MultiValueMap.class, new MediaType("multipart", "related"));
}
private void assertCanWrite(Class<?> clazz, MediaType mediaType) {
assertThat(this.converter.canWrite(clazz, mediaType)).isTrue();
}
@Test
......@@ -181,9 +196,7 @@ public class FormHttpMessageConverterTests {
verify(outputMessage.getBody(), never()).close();
}
// SPR-13309
@Test
@Test // SPR-13309
public void writeMultipartOrder() throws Exception {
MyBean myBean = new MyBean();
myBean.setString("foo");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册