public void TestPostSetsLocationHeader() { var controller = new PersonController(new MockPersonRepository()); controller.Request = new HttpRequestMessage { RequestUri = new Uri("http://localhost/api/people") }; controller.Configuration = new HttpConfiguration(); controller.Configuration.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }); controller.RequestContext.RouteData = new HttpRouteData(route: new HttpRoute(), values: new HttpRouteValueDictionary { { "controller", "people" } }); var person = new Person { FirstName = "Added", MiddleName = "The", LastName = "NewPerson" }; var response = controller.Post(person); IPerson resultPerson; response.TryGetContentValue<IPerson>(out resultPerson); Assert.AreEqual("http://localhost/api/people/" + resultPerson.PersonId, response.Headers.Location.AbsoluteUri); }
public PersonController CreateMockPersonController() { var controller = new PersonController(new MockPersonRepository()); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); return controller; }