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); }
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); }