public void Door_MustSetIsOpenToTrue_WhenIsCloseAndRequestOpening() { TimeConfiguration timeConfig = new TimeConfigurationNoDelayDummyForTest(); IDoor door = new Door(timeConfig); door.RequestOpening(); Assert.True(door.IsOpen); }
public void Door_MustNotify_WhenStartOpening() { TimeConfiguration timeConfig = new TimeConfigurationNoDelayDummyForTest(); IDoor door = new Door(timeConfig); IList <DoorMovmentEventArgs> receivedEvents = new List <DoorMovmentEventArgs>(); EventHandler <DoorMovmentEventArgs> del = delegate(object sender, DoorMovmentEventArgs e) { receivedEvents.Add(e); }; door.SubscribeToDoorMovmentEvents(del); door.RequestOpening(); Assert.False(receivedEvents.First().HasClosed); door.UnsubscribeToDoorMovmentEvents(del); }
public async Task Door_MustCloseAutomatically_AfterOpening() { TimeConfiguration timeConfig = new TimeConfigurationNoDelayDummyForTest(); IDoor door = new Door(timeConfig); IList <DoorMovmentEventArgs> receivedEvents = new List <DoorMovmentEventArgs>(); EventHandler <DoorMovmentEventArgs> del = delegate(object sender, DoorMovmentEventArgs e) { receivedEvents.Add(e); }; door.SubscribeToDoorMovmentEvents(del); await door.RequestOpening(); Assert.Equal(2, receivedEvents.Count); Assert.True(receivedEvents.Last().HasClosed); door.UnsubscribeToDoorMovmentEvents(del); }