public void ShouldMapMediaTypeToFormat()
        {
            var map = new MediaTypeFormatMap();
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();

            router.AddFormat(route, new[] {"*/*"});

            Assert.That(route.Values["format"], Is.EqualTo("xml"));
        }
        public void ShouldPrioritizeFormatSelectionByAcceptTypeOrderingByDefault()
        {
            var map = new MediaTypeFormatMap();
            map.Add("application/xml", "xml");
            map.Add("text/html", "html");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();

            router.AddFormat(route, new[] {"text/html", "application/xml"});

            Assert.That(route.Values["format"], Is.EqualTo("html"));
        }
        public void ShouldNotSetFormatIfRoutingSystemAlreadyDetectedIt()
        {
            var map = new MediaTypeFormatMap();
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();
            route.Values["format"] = "html";

            router.AddFormat(route, new[] {"*/*"});

            Assert.That(route.Values["format"], Is.EqualTo("html"));
        }
        public void ShouldIgnoreUnsupportedMediaTypes()
        {
            var map = new MediaTypeFormatMap();
            map.Add("text/plain", "text");
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();

            router.AddFormat(route, new[] {"text/html", "application/xml"});

            Assert.That(route.Values["format"], Is.EqualTo("xml"));
        }
        public void ShouldPrioritizeFormatSelectionByMapEntriesIfAskedTo()
        {
            var map = new MediaTypeFormatMap();
            map.Add("text/html", "html");
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map, ConnegPriorityGivenTo.Server);
            var route = new RouteData();

            router.AddFormat(route, new[] {"application/xml", "text/html"});

            Assert.That(route.Values["format"], Is.EqualTo("html"));
        }
        public void UnsupportedAcceptTypeMapsToDefaultFormat()
        {
            var map = new MediaTypeFormatMap();
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();

            router.AddFormat(route, new[] {"audio/*"});

            Assert.That(route.Values["format"], Is.EqualTo("xml"));
        }
        public void ShouldUseDefaultFormatIfNullAcceptTypesProvided()
        {
            var map = new MediaTypeFormatMap();
            map.Add("application/xml", "xml");
            var router = new ContentNegotiationRouteProxy(null, map);
            var route = new RouteData();

            router.AddFormat(route, null);

            Assert.That(route.Values["format"], Is.EqualTo("xml"));
        }