Beispiel #1
0
        public void GetNoWorkMultiple()
        {
            var random   = new Random();
            var expected = random.NextDouble();
            var timing   = Substitute.For <ICalculateTiming>();

            timing.Get(1).Returns(random.NextDouble());
            timing.Get(2).Returns(random.NextDouble());
            timing.Get(3).Returns(random.NextDouble());
            timing.Get(4).Returns(random.NextDouble());
            timing.Get(5).Returns(random.NextDouble());
            timing.Get(6).Returns(expected);

            var t = new BackoffTiming(timing);

            t.Get(false);
            t.Get(false);
            t.Get(false);
            t.Get(false);
            t.Get(false);
            var value = t.Get(false);

            Assert.AreEqual(expected, value);

            timing.Received().Get(1);
            timing.Received().Get(2);
            timing.Received().Get(3);
            timing.Received().Get(4);
            timing.Received().Get(5);
            timing.Received().Get(6);
        }
Beispiel #2
0
        public void Get()
        {
            var random   = new Random();
            var expected = random.Next();
            var timing   = Substitute.For <ICalculateTiming>();

            timing.FrequencyInSeconds.Returns(new Range <int>(expected, expected * 2));

            var t     = new BackoffTiming(timing);
            var value = t.Get(true);

            Assert.AreEqual(expected, value);

            var r = timing.Received().FrequencyInSeconds;
        }
Beispiel #3
0
        public void GetMaxThenMin()
        {
            var min = 1;
            var max = 10;
            var t   = new BackoffTiming(min, max);

            while (max > t.Get(false))
            {
            }

            Assert.AreEqual(max, t.Get(false));
            Assert.AreEqual(max, t.Get(false));

            var result = t.Get(true);

            Assert.IsTrue(result < max);
        }