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); }
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); }
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); }
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); }
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); }
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); }
public void Create_UsesODataSerializerProviderProxyInstance() { var formatters = ODataMediaTypeFormatters.Create(); Assert.Same(formatters.First().SerializerProvider, ODataSerializerProviderProxy.Instance); }