public void WhenSixFailuresHaveOccurredTheQueueIsDropped() { var bcs = new BatchedConnectionStatus(DefaultPeriod); for (var i = 0; i < 6; ++i) { bcs.MarkFailure(); } Assert.That(bcs.ShouldDropQueue); }
public void WhenThreeFailuresHaveOccurredTheIntervalBacksOff() { var bcs = new BatchedConnectionStatus(DefaultPeriod); bcs.MarkFailure(); bcs.MarkFailure(); bcs.MarkFailure(); Assert.AreEqual(TimeSpan.FromSeconds(20), bcs.NextInterval); Assert.IsFalse(bcs.ShouldDropBatch); }
public void When10FailuresHaveOccurredTheQueueIsDropped() { var bcs = new BatchedConnectionStatus(DefaultPeriod); for (var i = 0; i < 10; ++i) { Assert.False(bcs.ShouldDropQueue); bcs.MarkFailure(); } Assert.True(bcs.ShouldDropQueue); }
public void WhenFourFailuresHaveOccurredTheIntervalBacksOffAndBatchIsDropped() { var bcs = new BatchedConnectionStatus(DefaultPeriod); bcs.MarkFailure(); bcs.MarkFailure(); bcs.MarkFailure(); bcs.MarkFailure(); Assert.Equal(TimeSpan.FromSeconds(40), bcs.NextInterval); Assert.True(bcs.ShouldDropBatch); Assert.False(bcs.ShouldDropQueue); }
public void When8FailuresHaveOccurredTheIntervalBacksOffAndBatchIsDropped() { var bcs = new BatchedConnectionStatus(DefaultPeriod); for (var i = 0; i < 8; ++i) { Assert.False(bcs.ShouldDropBatch); bcs.MarkFailure(); } Assert.Equal(TimeSpan.FromMinutes(10), bcs.NextInterval); Assert.True(bcs.ShouldDropBatch); Assert.False(bcs.ShouldDropQueue); }
public void AtTheDefaultIntervalRetriesFor30MinutesBeforeDroppingQueue() { var bcs = new BatchedConnectionStatus(DefaultPeriod); var cumulative = TimeSpan.Zero; do { bcs.MarkFailure(); if (!bcs.ShouldDropQueue) { cumulative += bcs.NextInterval; } } while (!bcs.ShouldDropQueue); Assert.Equal(TimeSpan.Parse("00:30:32", CultureInfo.InvariantCulture), cumulative); }
public void WhenNoFailuresHaveOccurredTheRegularIntervalIsUsed() { var bcs = new BatchedConnectionStatus(DefaultPeriod); Assert.Equal(DefaultPeriod, bcs.NextInterval); }