package org.jboss.resteasy.test.mediatype; import org.jboss.resteasy.core.MediaTypeMap; import org.junit.Assert; import org.junit.Test; import javax.ws.rs.core.MediaType; import java.util.List; /** * @tpSubChapter Media type * @tpChapter Unit tests * @tpSince RESTEasy 3.0.16 */ public class MediaTypeMapTest { /** * @tpTestDetails Test to add media types into MediaTypeMap * @tpSince RESTEasy 3.0.16 */ @Test public void testMatching() { MediaTypeMap<String> map = new MediaTypeMap<String>(); String defaultPlainText = "defaultPlainText"; map.add(new MediaType("text", "plain"), defaultPlainText); String jaxb = "jaxb"; map.add(new MediaType("text", "xml"), jaxb); String wildcard = "wildcard"; map.add(new MediaType("*", "*"), wildcard); String allText = "allText"; map.add(new MediaType("text", "*"), allText); String allXML = "allXML"; map.add(new MediaType("text", "*+xml"), allXML); String app = "app"; map.add(new MediaType("application", "*"), app); List<String> list = map.getPossible(new MediaType("text", "plain")); Assert.assertNotNull("Media types for \"text, plain\" is empty", list); Assert.assertEquals("The list of media types doesn't contain expected number of elements", 3, list.size()); Assert.assertTrue("Unexpected item in the list", list.get(0) == defaultPlainText); Assert.assertTrue("Unexpected item in the list", list.get(1) == allText); Assert.assertTrue("Unexpected item in the list", list.get(2) == wildcard); list = map.getPossible(new MediaType("*", "*")); Assert.assertNotNull("Media types for \"*, *\" is empty", list); Assert.assertEquals("The list of media types doesn't contain expected number of elements", 6, list.size()); Assert.assertTrue(list.get(0), list.get(0) == defaultPlainText || list.get(0) == jaxb); Assert.assertTrue(list.get(1), list.get(1) == defaultPlainText || list.get(1) == jaxb); Assert.assertTrue(list.get(2), list.get(2) == allXML); Assert.assertTrue(list.get(3), list.get(3) == allText || list.get(3) == app); Assert.assertTrue(list.get(4), list.get(4) == allText || list.get(4) == app); Assert.assertTrue(list.get(5), list.get(5) == wildcard); list = map.getPossible(new MediaType("text", "*")); Assert.assertNotNull("Media types for \"text, *\" is empty", list); Assert.assertEquals("The list of media types doesn't contain expected number of elements", 5, list.size()); Assert.assertTrue(list.get(0), list.get(0) == defaultPlainText || list.get(0) == jaxb); Assert.assertTrue(list.get(1), list.get(1) == defaultPlainText || list.get(1) == jaxb); Assert.assertTrue(list.get(2), list.get(2) == allXML); Assert.assertTrue(list.get(3), list.get(3) == allText); Assert.assertTrue(list.get(4), list.get(4) == wildcard); list = map.getPossible(new MediaType("text", "xml")); Assert.assertNotNull("Media types for \"text, xml\" is empty", list); Assert.assertEquals("The list of media types doesn't contain expected number of elements", 4, list.size()); Assert.assertTrue(list.get(0) == jaxb); Assert.assertTrue(list.get(1) == allXML); Assert.assertTrue(list.get(2) == allText); Assert.assertTrue(list.get(3) == wildcard); } }