public async Task TestCreateStory_Created()
        {
            // Arrange
            Guid            expectedStoryId = Guid.NewGuid();
            RequestStoryDTO requestStoryDTO = new RequestStoryDTO
            {
                StoryId       = expectedStoryId,
                Title         = "",
                Body          = "",
                PublishedDate = DateTime.UtcNow
            };

            DBStatus dbStatus = DBStatus.Added;

            storiesService.Setup(x => x.CreateStoryAsync(requestStoryDTO, "akash")).ReturnsAsync(dbStatus);
            storiesController.ControllerContext = httpContext;


            //Act
            var actionResult = await storiesController.CreateStory(requestStoryDTO) as CreatedAtActionResult;

            //Assert
            Assert.NotNull(actionResult);
            Assert.Equal(201, actionResult.StatusCode);
            Assert.Equal(expectedStoryId.ToString(), actionResult.RouteValues.GetValueOrDefault("storyId").ToString());
        }
        public async Task <IActionResult> UpdateStory([FromBody] RequestStoryDTO storyDTO)
        {
            string userId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == System.Security.Claims.ClaimTypes.Sid).Value;

            DBStatus status = await storiesService.ReplaceStoryAsync(storyDTO, userId);

            ResponseStatusDTO responseStatusDTO = new ResponseStatusDTO((int)status, status.ToString());

            if (status == DBStatus.NotFound)
            {
                return(NotFound());
            }
            else if (status == DBStatus.Forbidden)
            {
                return(Forbid());
            }
            else if (status == DBStatus.NotModified)
            {
                return(BadRequest(new BadResponseDTO {
                    Status = (int)status, Errors = new Errors {
                        Message = new List <string> {
                            status.ToString()
                        }
                    }
                }));
            }
            else if (status == DBStatus.PreconditionFailed)
            {
                return(StatusCode(StatusCodes.Status412PreconditionFailed));
            }
            else
            {
                return(Ok(responseStatusDTO));
            }
        }
        public async Task TestUpdateStory_Ok()
        {
            //Arrange
            string          expectedTitle = "LoremIpsum";
            string          userId        = "akash";
            DBStatus        status        = DBStatus.Modified;
            RequestStoryDTO storyDTO      = new RequestStoryDTO {
                Title = expectedTitle
            };

            storiesService.Setup(x => x.ReplaceStoryAsync(storyDTO, userId)).ReturnsAsync(status);
            storiesController.ControllerContext = httpContext;

            //Act
            var result = await storiesController.UpdateStory(storyDTO) as OkObjectResult;

            //Assert
            Assert.NotNull(result);

            var response = result.Value as ResponseStatusDTO;


            Assert.Equal(200, result.StatusCode);
            Assert.Equal("Modified", response.Message);
        }
Ejemplo n.º 4
0
        public async Task <DBStatus> CreateStoryAsync(RequestStoryDTO storyDTO, string userId)
        {
            Story story = mapper.Map <Story>(storyDTO);

            story.AuthorId = userId;
            DBStatus status = await storiesRepository.AddStoryAsync(story);

            return(status);
        }
        public IEnumerator <object[]> GetEnumerator()
        {
            RequestStoryDTO story = new RequestStoryDTO
            {
                StoryId       = Guid.NewGuid(),
                Title         = "Corona Virus",
                Body          = "Corona virus is a huge threat for Mankind",
                PublishedDate = DateTime.UtcNow
            };

            yield return(new object[] { story });
        }
        public async Task TestReplaceStory_NotModified(RequestStoryDTO requestStoryDTO)
        {
            //Arrange
            string   userId         = "akash";
            DBStatus expectedStatus = DBStatus.NotModified;

            storiesRepository.Setup(x => x.ReplaceStoryAsync(requestStoryDTO, userId)).ReturnsAsync(expectedStatus);

            //Act
            DBStatus actualStatus = await storiesService.ReplaceStoryAsync(requestStoryDTO, userId);

            //Assert
            Assert.Equal(expectedStatus, actualStatus);
        }
        public async Task TestCreateStory_Failed(RequestStoryDTO requestStoryDTO, Story story)
        {
            //Arrange
            string   userId         = "akash";
            DBStatus expectedStatus = DBStatus.Failed;

            mapper.Setup(m => m.Map <Story>(requestStoryDTO)).Returns(story);
            storiesRepository.Setup(x => x.AddStoryAsync(story))
            .ReturnsAsync(expectedStatus);
            //Act
            DBStatus status = await storiesService.CreateStoryAsync(requestStoryDTO, userId);

            //Assert
            Assert.Equal(expectedStatus, status);
        }
        public async Task TestReplaceStory_Modified(RequestStoryDTO requestStoryDTO, Story story)
        {
            //Arrange
            DBStatus expectedStatus = DBStatus.Modified;

            dbContext.Stories.Add(story);
            dbContext.SaveChanges();

            requestStoryDTO.Title = "changed";

            //Act
            DBStatus actualStatus = await storiesRepository.ReplaceStoryAsync(requestStoryDTO, "akash");

            //Assert
            Assert.Equal(expectedStatus, actualStatus);
        }
        public async Task TestCreateStory_BadRequest(RequestStoryDTO requestStoryDTO)
        {
            // Arrange
            DBStatus dbStatus = DBStatus.Failed;

            storiesService.Setup(x => x.CreateStoryAsync(requestStoryDTO, "akash")).ReturnsAsync(dbStatus);
            storiesController.ControllerContext = httpContext;

            //Act
            var actionResult = await storiesController.CreateStory(requestStoryDTO) as BadRequestObjectResult;

            //Assert
            Assert.NotNull(actionResult);
            Assert.Equal(400, actionResult.StatusCode);
            BadResponseDTO badResponseDTO = actionResult.Value as BadResponseDTO;

            Assert.Equal(1, badResponseDTO.Status);
        }
        public async Task TestUpdateStory_NotFound()
        {
            //Arrange
            string          expectedTitle = "LoremIpsum";
            string          userId        = "akash";
            DBStatus        status        = DBStatus.NotFound;
            RequestStoryDTO storyDTO      = new RequestStoryDTO {
                Title = expectedTitle
            };

            storiesService.Setup(x => x.ReplaceStoryAsync(storyDTO, userId)).ReturnsAsync(status);
            storiesController.ControllerContext = httpContext;

            //Act
            var result = await storiesController.UpdateStory(storyDTO) as NotFoundResult;

            //Assert
            Assert.NotNull(result);
            Assert.Equal(404, result.StatusCode);
        }
Ejemplo n.º 11
0
        public IEnumerator <object[]> GetEnumerator()
        {
            Guid            storyId         = Guid.NewGuid();
            RequestStoryDTO requestStoryDTO = new RequestStoryDTO
            {
                StoryId       = storyId,
                Title         = "Corona Virus",
                Body          = "Corona virus is a huge threat for Mankind",
                PublishedDate = DateTime.UtcNow
            };

            Story story = new Story
            {
                StoryId       = storyId,
                Title         = "Corona Virus",
                Body          = "Corona virus is a huge threat for Mankind",
                PublishedDate = DateTime.UtcNow,
                AuthorId      = "akash"
            };

            yield return(new object[] { requestStoryDTO, story });
        }
        public async Task <IActionResult> CreateStory([FromBody] RequestStoryDTO storyDTO)
        {
            string   userId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == System.Security.Claims.ClaimTypes.Sid).Value;
            DBStatus status = await storiesService.CreateStoryAsync(storyDTO, userId);

            ResponseStatusDTO responseStatusDTO = new ResponseStatusDTO((int)status, status.ToString());

            if (status == DBStatus.Failed)
            {
                return(BadRequest(new BadResponseDTO {
                    Status = (int)status, Errors = new Errors {
                        Message = new List <string> {
                            status.ToString()
                        }
                    }
                }));
            }
            else
            {
                return(CreatedAtAction(nameof(GetStory), new { storyId = storyDTO.StoryId }, null));
            }
        }
Ejemplo n.º 13
0
        public async Task <DBStatus> ReplaceStoryAsync(RequestStoryDTO storyDTO, string userId)
        {
            Story persistentStory = await blogContext.Stories.FirstOrDefaultAsync(story => story.StoryId == storyDTO.StoryId);

            if (persistentStory == null)
            {
                return(DBStatus.NotFound);
            }


            if (userId != persistentStory.AuthorId)
            {
                return(DBStatus.Forbidden);
            }

            persistentStory.Title         = storyDTO.Title;
            persistentStory.Body          = storyDTO.Body;
            persistentStory.PublishedDate = storyDTO.PublishedDate;
            persistentStory.LastModified  = DateTime.UtcNow;

            var resultStatus = await blogContext.SaveChangesAsync();

            return(resultStatus == 0 ? DBStatus.NotModified : DBStatus.Modified);
        }
Ejemplo n.º 14
0
        public async Task <DBStatus> ReplaceStoryAsync(RequestStoryDTO storyDTO, string userId)
        {
            DBStatus status = await storiesRepository.ReplaceStoryAsync(storyDTO, userId);

            return(status);
        }