public Handle ( ISyncEvent e ) : bool | ||
e | ISyncEvent | /// The ISyncEvent. /// |
return | bool |
public override bool Handle(ISyncEvent e) {
bool isEventDelayed = false;
if (e is AbstractFolderEvent) {
isEventDelayed = this.DelayEventIfRetryCountPositive(e as AbstractFolderEvent);
}
if (e is StartNextSyncEvent) {
if (this.SyncHasToBeDelayed()) {
this.DelayNextSyncEvent(e as StartNextSyncEvent);
isEventDelayed = true;
}
}
this.FireDelayedEventsIfQueueIsEmpty();
return isEventDelayed;
}
public void DelaysNextSyncEventUntilQueueEmpty() { var queue = new Mock<ISyncEventQueue>(); var underTest = new DelayRetryAndNextSyncEventHandler(queue.Object); queue.Setup(q => q.IsEmpty).Returns(false); Assert.True(underTest.Handle(new StartNextSyncEvent())); queue.Setup(q => q.IsEmpty).Returns(true); Assert.False(underTest.Handle(Mock.Of<ISyncEvent>())); queue.Verify(q => q.AddEvent(It.Is<StartNextSyncEvent>(e => e.FullSyncRequested == false))); }