public void AddWithValidDataShouldReturnOk()
        {
            var validData = new PostsRequestModel
            {
                Content = "test post"
            };
            var controller = new PostsController(postsService);

            var result = controller.Add(1, validData);
            var okResult = result as OkNegotiatedContentResult<string>;
            Assert.IsNotNull(okResult, "Should return ok");
        }
        public void AddWithInvalidThreadReturnBadRequest()
        {
            var validData = new PostsRequestModel
            {
                Content = "test post"
            };
            var controller = new PostsController(postsService);

            var result = controller.Add(120, validData);
            var badRequest = result as BadRequestErrorMessageResult;
            Assert.IsNotNull(badRequest, "Should return BadRequest");
        }
        public IHttpActionResult Add(int threadId, PostsRequestModel post)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(InvalidData);
            }

            string userName = this.User.Identity.Name;
            int postId;
            try
            {
                postId = this.postsService
                     .Add(post.Content, threadId, userName);
            }
            catch (ArgumentException ae)
            {
                return this.BadRequest(ae.Message);
            }

            return this.Ok("Post " + postId + " added");
        }
        public void UpdateWithValidDataShoulrReturnOk()
        {
            var validData = new PostsRequestModel
             {
                 Content = "test post"
             };
            var controller = new PostsController(postsService);

            var result = controller.Update(1, validData);
            var okResult = result as OkResult;
            Assert.IsNotNull(okResult, "Should return ok");
        }
        public IHttpActionResult Update(int id, PostsRequestModel post)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(InvalidData);
            }

            try
            {
                this.postsService.Update(id, post.Content);
            }
            catch (ArgumentException ae)
            {
                return this.BadRequest(ae.Message);
            }

            return this.Ok();
        }