Ejemplo n.º 1
0
        public async Task ViewThreadAsync_IncorrectId_ExpctingRedirectToAction()
        {
            // Arrange
            var threadViewModel  = new ThreadViewModel();
            var mockThredService = new Mock <IThreadService>();
            var mockUserService  = new Mock <IUserService>();
            var mockAutoMapper   = new Mock <IMapper>();
            var threadController = new ThreadController(mockThredService.Object, mockUserService.Object, mockAutoMapper.Object);

            // Act
            var result = await threadController.ViewThreadAsync(Guid.Empty);

            // Assert
            var viewResult = Assert.IsAssignableFrom <RedirectToActionResult>(result);

            mockThredService.Verify(service => service.FindThreadWithRelatedDataAsync(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>()), Times.Never);
            mockUserService.Verify(service => service.FindUserAsync(It.IsAny <string>()), Times.Never);
        }
Ejemplo n.º 2
0
        public async Task ViewThreadAsync_CorrectId_ExpctingRedirectToAction()
        {
            // Arrange
            var threadModel      = new ThreadDto();
            var threadId         = Guid.NewGuid();
            var userModel        = new UserDto();
            var threadViewModel  = new ThreadViewModel();
            var mockThredService = new Mock <IThreadService>();

            mockThredService.Setup(service => service.FindThreadWithRelatedDataAsync(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>())).ReturnsAsync(threadModel);
            var mockUserService = new Mock <IUserService>();

            mockUserService.Setup(service => service.FindUserAsync(It.IsAny <string>())).ReturnsAsync(userModel);
            var mockAutoMapper = new Mock <IMapper>();

            mockAutoMapper.Setup(mapper => mapper.Map <ThreadViewModel>(threadModel)).Returns(threadViewModel);
            var threadController = new ThreadController(mockThredService.Object, mockUserService.Object, mockAutoMapper.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                        {
                            new Claim(ClaimTypes.Name, "username")
                        }, "someAuthTypeName"))
                    }
                }
            };

            // Act
            var result = await threadController.ViewThreadAsync(threadId);

            // Assert
            var viewResult = Assert.IsAssignableFrom <ViewResult>(result);

            Assert.IsAssignableFrom <ThreadViewModel>(viewResult.ViewData.Model);
        }