public void ExecuteInContext(ManuallyPumpedSynchronizationContext context, Action <Advancer> action) { SynchronizationContext originalContext = SynchronizationContext.Current; try { SynchronizationContext.SetSynchronizationContext(context); Advancer advancer = new Advancer(actions, context); // This is where the tests assertions etc will go... action(advancer); } finally { SynchronizationContext.SetSynchronizationContext(originalContext); } }
internal Target(out Advancer tryAdvance) { tryAdvance = TryAdvance; }