public async Task NoRefreshThrottleAllowsCalls() { var currentThrottle = TrelloConfiguration.RefreshThrottle; try { MockHost.MockJson(); MockHost.JsonFactory.Setup(f => f.Create <SynchronizedData>()) .Returns(new SynchronizedData()); TrelloConfiguration.RefreshThrottle = TimeSpan.Zero; var target = new SynchronizedObject(); await target.Synchronize(false, CancellationToken.None); await target.Synchronize(false, CancellationToken.None); target.RetrievalCount.Should().Be(2); } finally { TrelloConfiguration.RefreshThrottle = currentThrottle; } }
public async Task ForcedRefreshOverridesThrottle() { var currentThrottle = TrelloConfiguration.RefreshThrottle; try { MockHost.MockJson(); MockHost.JsonFactory.Setup(f => f.Create <SynchronizedData>()) .Returns(new SynchronizedData()); TrelloConfiguration.RefreshThrottle = TimeSpan.FromDays(1); var target = new SynchronizedObject(); await target.Synchronize(true, CancellationToken.None); await target.Synchronize(true, CancellationToken.None); target.RetrievalCount.Should().Be(2); } finally { TrelloConfiguration.RefreshThrottle = currentThrottle; } }
public async Task SynchronizeRaisesSynchronizedEvent() { var currentThrottle = TrelloConfiguration.RefreshThrottle; try { MockHost.MockJson(); MockHost.JsonFactory.Setup(f => f.Create <SynchronizedData>()) .Returns(new SynchronizedData()); TrelloConfiguration.RefreshThrottle = TimeSpan.FromDays(1); var counter = 0; var target = new SynchronizedObject { NewData = new SynchronizedData { Test = "one" } }; target.PublicSynchronized += properties => counter++; await target.Synchronize(false, CancellationToken.None); counter.Should().Be(1); } finally { TrelloConfiguration.RefreshThrottle = currentThrottle; } }
public async Task UnsupportedUpdateSkipsSubmission() { MockHost.MockJson(); MockHost.JsonFactory.Setup(f => f.Create <SynchronizedData>()) .Returns(new SynchronizedData()); var target = new SynchronizedObject { SupportsUpdates = false }; await target.Synchronize(false, CancellationToken.None); target.SubmissionCount.Should().Be(0); }