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;
        }
示例#2
0
        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);
        }