public static HttpResponseMessage HandleHttpRequest(HttpListenerContext context, Controller controller) { var resource = context.Request.Url.Segments.Last().Trim('/'); var requestBody = FetchRequestBody(context); var user = new User(resource); switch (context.Request.HttpMethod) { case "GET": { return(resource == "users" ? controller.GetUserList() : controller.GetUsers()); } case "PUT": { return(controller.AddUser(user)); } case "POST": { return(controller.UpdateUser(user, requestBody.Name)); } case "DELETE": { return(controller.DeleteUser(user)); } } return(new HttpResponseMessage()); }
public void UpdateUserReturnsCorrectResponseMessage() { var controller = new Controller(); var user = new User("Mary"); controller.AddUser(user); var responseMessage = controller.UpdateUser(user, "Ted"); var responseBodyContent = responseMessage.Content.ReadAsStringAsync(); var expectedResponseCode = HttpStatusCode.OK; var expectedBodyContent = @"{""Name"":""Ted""}"; responseMessage.StatusCode.Should().Be(expectedResponseCode); responseBodyContent.Result.Should().Be(expectedBodyContent); }
public void UpdateUserFailureReturnsCorrectResponseMessage() { var controller = new Controller(); var userToUpdate = new User("Mary"); controller.AddUser(userToUpdate); var responseMessage = controller.UpdateUser(new User("James"), "Ted"); var responseBodyContent = responseMessage.Content.ReadAsStringAsync(); var expectedResponseCode = HttpStatusCode.BadRequest; var expectedBodyContent = @"""User doesn't exist""";; responseMessage.StatusCode.Should().Be(expectedResponseCode); responseBodyContent.Result.Should().Be(expectedBodyContent); }