package org.jboss.resteasy.test.spring.unit; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaTypeEditor; import java.beans.PropertyEditor; import java.nio.charset.StandardCharsets; /** * @tpSubChapter Spring * @tpChapter Unit test * @tpTestCaseDetails Tests MediaTypeEditor * @tpSince RESTEasy 3.0.16 */ public class MediaTypePropertyEditorTest { private PropertyEditor propertyEditor; private static final String ERROR_MESSAGE_TYPE = "Didn't get correct mediatype"; private static final String ERROR_MESSAGE_ENCODING = "Didn't get correct mediatype"; @Before public void setupEditor() { propertyEditor = new MediaTypeEditor(); } /** * @tpTestDetails Tests that mediatype is set correctly to MediaTypeEditor * @tpSince RESTEasy 3.0.16 */ @Test public void testSetAsText() { propertyEditor.setAsText("application/xml"); MediaType type = (MediaType) propertyEditor.getValue(); Assert.assertEquals(ERROR_MESSAGE_TYPE, "application", type.getType()); Assert.assertEquals(ERROR_MESSAGE_TYPE, "xml", type.getSubtype()); } /** * @tpTestDetails Tests that mediatype and charset is set correctly to MediaTypeEditor * @tpSince RESTEasy 3.0.16 */ @Test public void testSetAsTextWithCharset() { propertyEditor.setAsText("application/xml;charset=UTF-8"); MediaType type = (MediaType) propertyEditor.getValue(); Assert.assertEquals(ERROR_MESSAGE_TYPE, "application", type.getType()); Assert.assertEquals(ERROR_MESSAGE_TYPE, "xml", type.getSubtype()); Assert.assertEquals(ERROR_MESSAGE_ENCODING, StandardCharsets.UTF_8.name(), type.getParameters().get("charset")); } /** * @tpTestDetails Tests that custom mediatype is set correctly to MediaTypeEditor * @tpSince RESTEasy 3.0.16 */ @Test public void testSetAsTextCustom() { propertyEditor.setAsText("application/custom"); MediaType type = (MediaType) propertyEditor.getValue(); Assert.assertEquals(ERROR_MESSAGE_TYPE, "application", type.getType()); Assert.assertEquals(ERROR_MESSAGE_TYPE, "custom", type.getSubtype()); } /** * @tpTestDetails Tests that getAsText() of MediaTypeEditor returns correct value * @tpSince RESTEasy 3.0.16 */ @Test public void testGetAsText() { MediaType type = MediaType.valueOf("application/xml"); propertyEditor.setValue(type); String text = propertyEditor.getAsText(); Assert.assertEquals(ERROR_MESSAGE_TYPE, "application/xml", text); } /** * @tpTestDetails Tests that getAsText() of MediaTypeEditor with custom MediaType returns correct value * @tpSince RESTEasy 3.0.16 */ @Test public void testGetAsTextCustom() { MediaType type = MediaType.valueOf("application/custom"); propertyEditor.setValue(type); String text = propertyEditor.getAsText(); Assert.assertEquals(ERROR_MESSAGE_TYPE, "application/custom", text); } }