public void TimeButtonPressedAndMicrowaveStarted_IsInPowerState_TurnsOnForAMinute() { //ARRANGE powerButton.Press(); //Boilerplate to force a wait until ShowTime is called AutoResetEvent reset = new AutoResetEvent(false); powerTubeSubstitute .When(d => d.TurnOff()) .Do(c => { reset.Set(); }); //ACT timeButton.Press(); startCancelButton.Press(); //ASSERT //We want to fail if power isn't turned off after a minute! Assert.That(reset.WaitOne(61000), Is.True); }