public void Should_Handle_IsOpen_Correctly() { // Arrange var timesCalled = 0; _stateEngineWrapperMock.Setup(m => m.ShowMessage(It.IsAny <object>(), It.IsAny <string>())) .Callback <object, string>((sender, args) => { if (args == _messages[EventMessages.Should_Handle_Door_Open]) { timesCalled++; } }); _stateEngineWrapperMock.Setup(m => m.OpenDoor(It.IsAny <object>(), It.IsAny <object>())) .Callback <object, object>((sender, args) => { timesCalled++; }); var microwaveData = new MicrowaveData { IsOpen = true }; StateEngine.OpenDoor += _stateEngineWrapperMock.Object.OpenDoor; StateEngine.ShowMessage += _stateEngineWrapperMock.Object.ShowMessage; // Act StateEngine.MicrowaveEngine(microwaveData); // Assert Assert.Equal(2, timesCalled); }
public void Should_Handle_Closed_Door_Higher_Time_Than_0() { // Arrange var microwaveData = new MicrowaveData { IsOpen = false, Time = 1337 }; var timesCalled = 0; _stateEngineWrapperMock.Setup(m => m.SetReady(It.IsAny <object>(), It.IsAny <object>())) .Callback <object, object>((sender, args) => { timesCalled++; }); _stateEngineWrapperMock.Setup(m => m.SetLightReady(It.IsAny <object>(), It.IsAny <object>())) .Callback <object, object>((sender, args) => { timesCalled++; }); StateEngine.SetReady += _stateEngineWrapperMock.Object.SetReady; StateEngine.SetLightReady += _stateEngineWrapperMock.Object.SetLightReady; // Act StateEngine.MicrowaveEngine(microwaveData); // Assert Assert.Equal(2, timesCalled); Assert.Equal(StateEngine.State.Ready, StateEngine.CurrentState); }
public void Should_Not_Start_When_Door_Is_Open() { // Arrange var microwaveData = new MicrowaveData { IsOpen = false, Time = 0, IsStartClicked = true }; var timesCalled = 0; _stateEngineWrapperMock.Setup(m => m.ShowMessage(It.IsAny <object>(), It.IsAny <string>())) .Callback <object, string>((sender, args) => { if (args == _messages[EventMessages.Should_Not_Start_When_Door_Is_Open]) { timesCalled++; } }); StateEngine.ShowMessage += _stateEngineWrapperMock.Object.ShowMessage; // Act StateEngine.MicrowaveEngine(microwaveData); // Assert Assert.Equal(1, timesCalled); }