[InlineData("GET", "http://localhost/Customers(42)/NS.SpecialCustomer/IsSpecialUpgraded()", "IsSpecialUpgraded_42")] // function bound to derived entity type public async Task AttriubteRouting_SelectsExpectedControllerAndAction(string method, string requestUri, string expectedResult) { // Arrange CustomersModelWithInheritance model = new CustomersModelWithInheritance(); var controllers = new[] { typeof(CustomersController), typeof(MetadataController), typeof(OrdersController) }; TestAssemblyResolver resolver = new TestAssemblyResolver(new MockAssembly(controllers)); HttpConfiguration config = new HttpConfiguration(); config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; config.Services.Replace(typeof(IAssembliesResolver), resolver); config.Routes .MapODataRoute("odata", "", model.Model) .MapODataRouteAttributes(config); HttpServer server = new HttpServer(config); config.EnsureInitialized(); HttpClient client = new HttpClient(server); HttpRequestMessage request = new HttpRequestMessage(new HttpMethod(method), requestUri); // Act var response = await client.SendAsync(request); // Assert if (!response.IsSuccessStatusCode) { Assert.False(true, await response.Content.ReadAsStringAsync()); } var result = await response.Content.ReadAsAsync<AttributeRoutingTestODataResponse>(); Assert.Equal(expectedResult, result.Value); }
public ODataActionTests() { HttpConfiguration configuration = new HttpConfiguration(); _model = GetModel(); configuration.Formatters.Clear(); configuration.Formatters.AddRange(ODataMediaTypeFormatters.Create()); configuration.Routes.MapODataRoute(_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); }