// // RACTestScheduler.h // ReactiveCocoa // // Created by Justin Spahr-Summers on 2013-07-06. // Copyright (c) 2013 GitHub, Inc. All rights reserved. // #import "RACScheduler.h" /// A special kind of scheduler that steps through virtualized time. /// /// This scheduler class can be used in unit tests to verify asynchronous /// behaviors without spending significant time waiting. /// /// This class can be used from multiple threads, but only one thread can `step` /// through the enqueued actions at a time. Other threads will wait while the /// scheduled blocks are being executed. @interface RACTestScheduler : RACScheduler /// Initializes a new test scheduler. - (instancetype)init; /// Executes the next scheduled block, if any. /// /// This method will block until the scheduled action has completed. - (void)step; /// Executes up to the next `ticks` scheduled blocks. /// /// This method will block until the scheduled actions have completed. /// /// ticks - The number of scheduled blocks to execute. If there aren't this many /// blocks enqueued, all scheduled blocks are executed. - (void)step:(NSUInteger)ticks; /// Executes all of the scheduled blocks on the receiver. /// /// This method will block until the scheduled actions have completed. - (void)stepAll; @end