public Task <SynchronizationFinished> WaitForSynchFinish( Action <ObservableCollection <LocalTestResource> > resultAssertion = null) { var taskCompletion = new TaskCompletionSource <SynchronizationFinished>(); ChannelUnderTest.AddSynchronizationFinishedObserver(finish => { taskCompletion.SetResult(finish); }); var bogus = ChannelUnderTest.Drain(true); return(taskCompletion.Task); }
public async Task ShouldCallSynchronizationFinishedObserver() { bool isCalled = false; ChannelUnderTest.AddSynchronizationFinishedObserver(finish => { Assert.AreEqual(typeof(LocalTestResource), finish.Type1); Assert.AreEqual(typeof(RemoteTestResource), finish.Type2); Assert.AreEqual(3, finish.ItemsProcessed); Assert.AreEqual(1, finish.ItemsSynchronized); isCalled = true; }); await ChannelUnderTest.Synchronize(); Assert.IsTrue(isCalled); }