public void RedirectToFinish_WhenNextStepIsCalled() { // Arrange int phaseNumber = 2; int stepNumber = 20; string expectedRedirectAction = "Finish"; var mockSessionStorage = new Mock <ISessionStorage>(); mockSessionStorage .Setup(x => x.GetString(StroopTestController.SESSION_PHASE_NUMBER_KEY)) .Returns(phaseNumber.ToString()); mockSessionStorage .Setup(x => x.GetString(StroopTestController.SESSION_STEP_NUMBER_KEY)) .Returns(stepNumber.ToString()); var mockColorProvider = new Mock <IColorProvider>(); var settings = new StroopTestSettings(); var controller = new StroopTestController(mockSessionStorage.Object, mockColorProvider.Object, settings); // Act var actual = controller.NextStep(); // Assert var redirectResult = Assert.IsType <RedirectToActionResult>(actual); Assert.Null(redirectResult.ControllerName); Assert.Equal(expectedRedirectAction, redirectResult.ActionName); }
public void ReturnAViewResult_WhenNextStepIsCalled(int phaseNumber, int stepNumber, int expectedPhaseNumber, int expectedStepNumber) { // Arrange var expectedColorModel = new ColorsModel() { ColorAsHex = "#FF0000", ColorAsWord = Color.BLUE }; var expectedModels = TestDatas.GetFakeTestPhaseModels(); var mockSessionStorage = new Mock <ISessionStorage>(); mockSessionStorage .Setup(x => x.GetObjectFromJson <List <TestPhaseModel> >(It.IsAny <string>())) .Returns(expectedModels); mockSessionStorage .Setup(x => x.GetString(StroopTestController.SESSION_PHASE_NUMBER_KEY)) .Returns(phaseNumber.ToString()); mockSessionStorage .Setup(x => x.GetString(StroopTestController.SESSION_STEP_NUMBER_KEY)) .Returns(stepNumber.ToString()); var mockColorProvider = new Mock <IColorProvider>(); var settings = new StroopTestSettings(); var controller = new StroopTestController(mockSessionStorage.Object, mockColorProvider.Object, settings); // Act var actual = controller.NextStep(); // Assert var viewResult = Assert.IsType <ViewResult>(actual); var model = Assert.IsType <StepModel>(viewResult.ViewData.Model); Assert.Equal(expectedPhaseNumber, model.PhaseNumber); Assert.Equal(expectedStepNumber, model.StepNumber); }