public void Details_ShouldReturnView() { var service = new Mock <IStoryService>(); service.Setup(s => s.GetStoryByIdAsViewModel("testId")) .Returns(() => new StoryViewModel { Id = "testId" }); StoriesController controller = new StoriesController( service.Object, userManager.Object, logger) { TempData = new TempDataDictionary(httpContext.Object, tempDataProvider.Object) }; var result = controller.Details("testId"); var viewResult = Assert.IsAssignableFrom <ViewResult>(result); viewResult.Model.ShouldBeOfType <StoryViewModel>(); viewResult.Model.ShouldNotBeNull(); }
public void Details_ShouldReturnRedirect_OnException() { var service = new Mock <IStoryService>(); service.Setup(s => s.GetStoryByIdAsViewModel("testId")) .Throws(new Exception()); StoriesController controller = new StoriesController( service.Object, userManager.Object, logger) { TempData = new TempDataDictionary(httpContext.Object, tempDataProvider.Object) }; var result = controller.Details("testId"); var viewResult = Assert.IsAssignableFrom <RedirectResult>(result); viewResult.Url.ShouldBe("/Stories"); controller.TempData.ContainsKey("notification").ShouldBeTrue(); controller.TempData["notification"].ShouldNotBeNull(); controller.TempData["notification"].ShouldBeOfType <string[]>(); string[] arr = controller.TempData["notification"] as string[]; arr[0].ShouldBe("danger"); }