public HttpResponseMessage CreatePost([FromBody] UserPostCreateModel model, [FromUri] string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { this.ValidatePostContent(model.Content); var user = this.GetUserBySessionKey(sessionKey); var newPost = new UserPost() { Content = model.Content, PostDate = DateTime.Now }; user.Posts.Add(newPost); this.db.Users.Update(user); this.db.SaveChanges(); var returnModel = new UserPostModel() { Id = newPost.Id, Content = model.Content, PostedBy = user.FirstName + " " + user.LastName, PostDate = newPost.PostDate }; var response = this.Request.CreateResponse(HttpStatusCode.Created, returnModel); return(response); }); return(responseMsg); }
public void CreatePost_WhenContentIsNull_ShouldReturnBadRequest() { using (new TransactionScope()) { this.db.Users.Add(this.firstUser); this.db.SaveChanges(); var newPost = new UserPostCreateModel() { }; var response = this.httpServer.CreatePostRequest( "/api/userposts/create?sessionKey=" + this.firstUser.SessionKey, newPost); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); } }
public void CreatePost_WhenDataIsValid_ShouldSaveInDatabase() { using (new TransactionScope()) { this.db.Users.Add(this.firstUser); this.db.SaveChanges(); var newPost = new UserPostCreateModel() { Content = "Content" }; var response = this.httpServer.CreatePostRequest( "/api/userposts/create?sessionKey=" + this.firstUser.SessionKey, newPost); Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); var returnedPostModel = this.GetUserPostModelFromResponse(response); Assert.IsNotNull(returnedPostModel); Assert.IsNotNull(returnedPostModel.PostDate); Assert.AreEqual(this.firstUser.FirstName + " " + this.firstUser.LastName, returnedPostModel.PostedBy); Assert.AreEqual(newPost.Content, returnedPostModel.Content); Assert.IsTrue(returnedPostModel.Id > 0); } }