Ejemplo n.º 1
0
        public void WhenSixFailuresHaveOccurredTheQueueIsDropped()
        {
            var bcs = new BatchedConnectionStatus(DefaultPeriod);

            for (var i = 0; i < 6; ++i)
            {
                bcs.MarkFailure();
            }
            Assert.That(bcs.ShouldDropQueue);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 7
0
        public void WhenNoFailuresHaveOccurredTheRegularIntervalIsUsed()
        {
            var bcs = new BatchedConnectionStatus(DefaultPeriod);

            Assert.Equal(DefaultPeriod, bcs.NextInterval);
        }