Beispiel #1
0
        public ODataActionTests()
        {
            HttpConfiguration configuration = new HttpConfiguration();

            _model = GetModel();
            configuration.Formatters.Clear();
            configuration.Formatters.AddRange(ODataMediaTypeFormatters.Create());
            configuration.MapODataServiceRoute(_model);
            var controllers        = new[] { typeof(CustomersController) };
            var assembliesResolver = new TestAssemblyResolver(new MockAssembly(controllers));

            configuration.Services.Replace(typeof(IAssembliesResolver), assembliesResolver);

            _server = new HttpServer(configuration);
            _client = new HttpClient(_server);
        }
Beispiel #2
0
        public InheritanceTests()
        {
            HttpConfiguration configuration = new HttpConfiguration();

            _model = GetEdmModel();
            IEnumerable <ODataMediaTypeFormatter> formatters = ODataMediaTypeFormatters.Create();

            configuration.Formatters.Clear();
            configuration.Formatters.AddRange(formatters);

            configuration.Routes.MapHttpRoute("default", "{action}", new { Controller = "Inheritance" });
            configuration.Routes.MapFakeODataRoute();

            _server = new HttpServer(configuration);
            _client = new HttpClient(_server);
        }
Beispiel #3
0
        public NullCollectionsTests()
        {
            ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

            builder.EntitySet <NullCollectionsTestsModel>("NullCollectionsTests");
            builder.EntitySet <Vehicle>("vehicles");
            IEdmModel model = builder.GetEdmModel();

            _config = new[] { typeof(NullCollectionsTestsController) }.GetHttpConfiguration();
            _config.Formatters.Clear();
            _config.Formatters.AddRange(ODataMediaTypeFormatters.Create());
            _config.MapODataServiceRoute(model);

            HttpServer server = new HttpServer(_config);

            _client = new HttpClient(server);
        }
Beispiel #4
0
        public void SetDefaultContentHeaders_SetsRightContentType(string acceptHeader, string acceptCharset, string contentType)
        {
            // Arrange
            MediaTypeHeaderValue expectedResult = MediaTypeHeaderValue.Parse(contentType);

            // If no accept header is present the content negotiator will pick application/json; odata.metadata=minimal
            // based on CanWriteType
            MediaTypeHeaderValue mediaType = acceptHeader == null?
                                             MediaTypeHeaderValue.Parse("application/json; odata.metadata=minimal") :
                                                 MediaTypeHeaderValue.Parse(acceptHeader);

            HttpRequestMessage request = new HttpRequestMessage();

            request.EnableODataDependencyInjectionSupport();
            if (acceptHeader != null)
            {
                request.Headers.TryAddWithoutValidation("Accept", acceptHeader);
            }
            if (acceptCharset != null)
            {
                request.Headers.TryAddWithoutValidation("Accept-Charset", acceptCharset);
                mediaType.CharSet = acceptCharset;
            }

            HttpContentHeaders contentHeaders = new StringContent(String.Empty).Headers;

            contentHeaders.Clear();

            MediaTypeFormatter formatter = ODataMediaTypeFormatters
                                           .Create()
                                           .First(f => f.SupportedMediaTypes.Contains(MediaTypeHeaderValue.Parse("application/json")));

            formatter = formatter.GetPerRequestFormatterInstance(typeof(int), request, mediaType);

            // Act
            formatter.SetDefaultContentHeaders(typeof(int), contentHeaders, mediaType);

            // Assert
            Assert.Equal(expectedResult, contentHeaders.ContentType);
        }
Beispiel #5
0
        public void CustomSerializerWorks_ForInstanceAnnotationsFilter(string filter, string expect)
        {
            // Arrange
            HttpConfiguration configuration = CreateConfiguration();

            configuration.Formatters.InsertRange(0,
                                                 ODataMediaTypeFormatters.Create(new CustomSerializerProvider(),
                                                                                 new DefaultODataDeserializerProvider()));
            HttpClient client = new HttpClient(new HttpServer(configuration));

            HttpRequestMessage request = CreateRequestWithAnnotationFilter("People(2)",
                                                                           String.Format("odata.include-annotations=\"{0}\"", filter));

            // Act
            HttpResponseMessage response = client.SendAsync(request).Result;

            // Assert
            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Console.WriteLine(response.Content.ReadAsStringAsync().Result);
            Assert.Equal(Resources.GetString(expect), response.Content.ReadAsStringAsync().Result);
        }
Beispiel #6
0
        public void CustomSerializerWorks()
        {
            // Arrange
            using (HttpConfiguration configuration = CreateConfiguration())
            {
                configuration.Formatters.InsertRange(
                    0,
                    ODataMediaTypeFormatters.Create(new CustomSerializerProvider(), new DefaultODataDeserializerProvider()));
                using (HttpServer host = new HttpServer(configuration))
                    using (HttpClient client = new HttpClient(host))
                        using (HttpRequestMessage request = CreateRequestWithAnnotationFilter("People", "odata.include-annotations=\"*\""))
                            // Act
                            using (HttpResponseMessage response = client.SendAsync(request).Result)
                            {
                                // Assert
                                Assert.NotNull(response);
                                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
                                string payload = response.Content.ReadAsStringAsync().Result;

                                Assert.Contains("\"@Custom.Int32Annotation\":321", payload);
                                Assert.Contains("\"@Custom.StringAnnotation\":\"My amazing feed\"", payload);
                            }
            }
        }
        public void Create_UsesDefaultDeserializerProviderInstance()
        {
            var formatters = ODataMediaTypeFormatters.Create();

            Assert.Same(formatters.First().DeserializerProvider, DefaultODataDeserializerProvider.Instance);
        }
Beispiel #8
0
        public void Create_UsesODataSerializerProviderProxyInstance()
        {
            var formatters = ODataMediaTypeFormatters.Create();

            Assert.Same(formatters.First().SerializerProvider, ODataSerializerProviderProxy.Instance);
        }