public HttpResponseMessage AddComment(int postId, CommentModel comment, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var context = new BloggingSystemContext(); var user = GetAndValidateUser(sessionKey, context); var postEntity = context.Posts.FirstOrDefault(p => p.Id == postId); var commentEntity = new Comment() { PostDate = DateTime.Now, Text = comment.Text, User = user }; postEntity.Comments.Add(commentEntity); context.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return response; }); return responseMsg; }
public void Post_Comment_WrongPost_Should_Return_BadRequest() { var postModel = new PostModel() { Title = "Test", Text = "Test text", Tags = new string[] { } }; var headers = new Dictionary<string, string>(); headers["X-sessionKey"] = this.validUser.SessionKey; var response = this.httpServer.Post("api/posts/", postModel, headers); var contentString = response.Content.ReadAsStringAsync().Result; var postCreatedModel = JsonConvert.DeserializeObject<PostCreatedModel>(contentString); Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); Assert.AreEqual(postModel.Title, postCreatedModel.Title); var postId = 999999999; var commentModel = new CommentModel() { Text = "Just comment" }; response = this.httpServer.Put("api/posts/" + postId + "/comment", commentModel, headers); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }