예제 #1
0
        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);
        }
예제 #2
0
        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);
        }