public void Route_Get_Action_With_Query_Parameters() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "EchoUser"); Uri requestUri = new Uri("http://localhost/?firstName=QueryFirstName&lastName=QueryLastName"); HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = requestUri }); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync(controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync <User>().Result; // Assert Assert.Equal("QueryFirstName", user.FirstName); Assert.Equal("QueryLastName", user.LastName); }
public void Route_Post_Action_With_Content_Parameter() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "EchoUserObject"); User postedUser = new User() { FirstName = "SampleFirstName", LastName = "SampleLastName" }; HttpRequestMessage request = new HttpRequestMessage() { Method = HttpMethod.Post }; // Create a serialized request because this test directly calls the controller // which would have normally been working with a serialized request content. string serializedUserAsString = null; using (HttpRequestMessage tempRequest = new HttpRequestMessage() { Content = new ObjectContent <User>(postedUser, new XmlMediaTypeFormatter()) }) { serializedUserAsString = tempRequest.Content.ReadAsStringAsync().Result; } StringContent stringContent = new StringContent(serializedUserAsString); stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/xml"); request.Content = stringContent; HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: request); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync( controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync <User>().Result; // Assert Assert.Equal(postedUser.FirstName, user.FirstName); Assert.Equal(postedUser.LastName, user.LastName); }
public void Route_ActionName() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "Admin"); HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: new HttpRequestMessage() { Method = HttpMethod.Post }); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync(controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync <User>().Result; // Assert Assert.Equal("Yao", user.FirstName); Assert.Equal("Huang", user.LastName); }
public void Route_Post_Action_With_Content_Parameter() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "EchoUserObject"); User postedUser = new User() { FirstName = "SampleFirstName", LastName = "SampleLastName" }; HttpRequestMessage request = new HttpRequestMessage() { Method = HttpMethod.Post }; // Create a serialized request because this test directly calls the controller // which would have normally been working with a serialized request content. string serializedUserAsString = null; using (HttpRequestMessage tempRequest = new HttpRequestMessage() { Content = new ObjectContent<User>(postedUser, new XmlMediaTypeFormatter()) }) { serializedUserAsString = tempRequest.Content.ReadAsStringAsync().Result; } StringContent stringContent = new StringContent(serializedUserAsString); stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/xml"); request.Content = stringContent; HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: request); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync( controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync<User>().Result; // Assert Assert.Equal(postedUser.FirstName, user.FirstName); Assert.Equal(postedUser.LastName, user.LastName); }
public void Route_Get_Action_With_Query_Parameters() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "EchoUser"); Uri requestUri = new Uri("http://localhost/?firstName=QueryFirstName&lastName=QueryLastName"); HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: new HttpRequestMessage() { Method = HttpMethod.Post, RequestUri = requestUri }); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync(controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync<User>().Result; // Assert Assert.Equal("QueryFirstName", user.FirstName); Assert.Equal("QueryLastName", user.LastName); }
public void Route_ActionName() { // Arrange ApiController api = new UsersRpcController(); HttpRouteData route = new HttpRouteData(new HttpRoute()); route.Values.Add("action", "Admin"); HttpControllerContext controllerContext = ContextUtil.CreateControllerContext(instance: api, routeData: route, request: new HttpRequestMessage() { Method = HttpMethod.Post }); controllerContext.ControllerDescriptor = new HttpControllerDescriptor(controllerContext.Configuration, "test", typeof(UsersRpcController)); // Act HttpResponseMessage message = api.ExecuteAsync(controllerContext, CancellationToken.None).Result; User user = message.Content.ReadAsAsync<User>().Result; // Assert Assert.Equal("Yao", user.FirstName); Assert.Equal("Huang", user.LastName); }