public void AlwaysReturnsTheStateItRuns(bool[] pushPull) { DequeuedStates.Clear(); QueueSyncs(BoolToEnumValues(pushPull)); var returnValues = DequeueUntilSleep(); returnValues.ShouldBeSameEventsAs(DequeuedStates.ToArray()); }
public void RetursSleepAfterClearNoMatterWhatWasQueuedPreviously(NonEmptyArray <bool> pushPull) { DequeuedStates.Clear(); QueueSyncs(BoolToEnumValues(pushPull.Get)); Clear(); var returnValues = DequeueUntilSleep(); returnValues.ShouldBeSameEventsAs(Sleep); }
public void RunsFullCycleOnceNoMatterWhatIsQueuedIfPullIsQueued(bool[] pushPull) { DequeuedStates.Clear(); var states = (pushPull ?? Enumerable.Empty <bool>()) .Select(b => b ? Push : Pull).ToArray(); QueueSyncs(states); if (!states.Contains(Pull)) { QueueSyncs(Pull); } DequeueUntilSleep(); DequeuedStates.ShouldBeSameEventsAs( Pull, Push, Sleep ); }