public void RedirectToStartTestPhase_WhenStartIsCalled() { // Arrange var expectedModels = TestDatas.GetFakeTestPhaseModels(); string expectedRedirectAction = "StartTestPhase"; var mockSessionStorage = new Mock <ISessionStorage>(); mockSessionStorage .Setup(x => x.GetObjectFromJson <List <TestPhaseModel> >(It.IsAny <string>())) .Returns(expectedModels); var mockColorProvider = new Mock <IColorProvider>(); var settings = new StroopTestSettings(); var controller = new StroopTestController(mockSessionStorage.Object, mockColorProvider.Object, settings); // Act var actual = controller.Start(); // Assert var redirectResult = Assert.IsType <RedirectToActionResult>(actual); Assert.Null(redirectResult.ControllerName); Assert.Equal(expectedRedirectAction, redirectResult.ActionName); mockSessionStorage.Verify(x => x.GetObjectFromJson <List <TestPhaseModel> >(It.IsAny <string>()), Times.Once); }
public void StoreColorsModels_WhenStartIsCalled() { // Arrange List <TestPhaseModel> model = new List <TestPhaseModel>(); var mockSessionStorage = new Mock <ISessionStorage>(); mockSessionStorage .Setup(x => x.GetObjectFromJson <List <TestPhaseModel> >(It.IsAny <string>())) .Returns(model); var mockColorProvider = new Mock <IColorProvider>(); var settings = new StroopTestSettings(); var controller = new StroopTestController(mockSessionStorage.Object, mockColorProvider.Object, settings); // Act var actual = controller.Start(); // Assert mockColorProvider.Verify(x => x.GetCongruentColor(), Times.Exactly(20)); mockColorProvider.Verify(x => x.GetIncongruentColor(), Times.Exactly(20)); mockSessionStorage.Verify(x => x.GetObjectFromJson <List <TestPhaseModel> >(It.IsAny <string>()), Times.Once); Assert.Equal(2, model.Count); var modelPhase1 = model[0]; Assert.Equal(1, modelPhase1.PhaseNumber); Assert.Equal(20, modelPhase1.StepModels.Count); var modelPhase2 = model[1]; Assert.Equal(2, modelPhase2.PhaseNumber); Assert.Equal(20, modelPhase2.StepModels.Count); }