Beispiel #1
0
        public async Task <IActionResult> Create([FromBody] AddOrUpdatePostDTO formData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var resultModel = Convertor.ToPost(formData);
            await PostRepo.Add(resultModel);

            return(CreatedAtRoute("GetPost", new { Controller = "Post", id = resultModel.Id }, resultModel));
        }
Beispiel #2
0
        public async Task <IActionResult> Update([FromRoute] int id, [FromBody] AddOrUpdatePostDTO formData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!PostExists(id).Result)
            {
                return(NotFound());
            }

            var postItem = Convertor.ToPost(formData, id);
            await PostRepo.Update(id, postItem);

            return(NoContent());
        }
        public async Task Create_ShouldReturn_CreatedPost()
        {
            const string TEXT = "Unit Test Post goes here...";

            #region Arrange
            int id       = 1;
            var testPost = new Post()
            {
                Id         = 1,
                Text       = TEXT,
                CreatedBy  = "aemloviji",
                InsertDate = DateTime.Now,
            };

            var mockRepo = new Mock <IPostRepository>();
            mockRepo.Setup(repo => repo.Find(id))
            .Returns(Task.FromResult(testPost));
            var controller = new PostController(mockRepo.Object);

            var newPost = new AddOrUpdatePostDTO()
            {
                Text       = TEXT,
                CreatedBy  = "aemloviji",
                InsertDate = DateTime.Now,
            };
            mockRepo.Setup(repo => repo.Add(testPost))
            .Returns(Task.CompletedTask)
            .Verifiable();
            #endregion


            var actionResult = await controller.Create(newPost);

            Assert.IsInstanceOfType(actionResult, typeof(CreatedAtRouteResult));

            var okResult = actionResult as CreatedAtRouteResult;
            Assert.IsInstanceOfType(okResult.Value, typeof(Post));
            Assert.AreEqual(TEXT, (okResult.Value as Post).Text);
        }