Пример #1
0
        public void ShouldNotFireAlarmWhenInterruptsAreDisabled()
        {
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 1, null, String.Empty, 10, Direction.Descending, true);
            var ticked            = false;

            timer.LimitReached += () => ticked = true;
            manualClockSource.AdvanceBySeconds(11);
            Assert.IsFalse(ticked);
        }
Пример #2
0
        public void ShouldFireAlarmWhenInterruptsAreEnabled()
        {
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 1, null, String.Empty, 10, Direction.Descending, true);

            timer.EventEnabled = true;
            var ticked = false;

            timer.LimitReached += () => ticked = true;
            // var val =timer.Value;
            manualClockSource.AdvanceBySeconds(10);
            Assert.IsTrue(ticked);
        }
Пример #3
0
        public void ShouldSwitchDirectionProperly()
        {
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 100, null, String.Empty, 100000, Direction.Ascending, true);

            timer.EventEnabled = true;
            var ticked = false;

            timer.LimitReached += () => ticked = true;
            manualClockSource.AdvanceBySeconds(2);
            timer.Direction = Direction.Descending; // and then change the direction
            manualClockSource.AdvanceBySeconds(2);
            Assert.IsTrue(ticked);
        }
Пример #4
0
        public void ShouldBeDescending()
        {
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 100, null, String.Empty, 100000, Direction.Descending, true);
            var oldValue          = timer.Limit;

            for (var i = 0; i < 100; i++)
            {
                manualClockSource.AdvanceBySeconds(1);
                var value = timer.Value;
                Assert.Less(value, oldValue, "Timer is not monotonic.");
                oldValue = value;
            }
        }
Пример #5
0
        public void ShouldBeAscending()
        {
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 100, 100000, Direction.Ascending, true);
            var oldValue          = 0UL;

            for (var i = 0; i < 100; i++)
            {
                manualClockSource.AdvanceBySeconds(1);
                var value = timer.Value;
                Assert.Greater(value, oldValue, "Timer is not monotonic.");
                oldValue = value;
            }
        }
Пример #6
0
        public void ShouldNotExceedLimitDescending()
        {
            var limit             = 100UL;
            var manualClockSource = new ManualClockSource();
            var timer             = new LimitTimer(manualClockSource, 1, null, String.Empty, limit, Direction.Ascending, true);

            manualClockSource.AdvanceBySeconds(limit - 1);
            for (var i = 0; i < 3; i++)
            {
                var value = timer.Value;
                Assert.LessOrEqual(value, limit, "Timer exceeded given limit.");
                Assert.GreaterOrEqual(value, 0, "Timer returned negative value.");
                manualClockSource.AdvanceBySeconds(1);
            }
        }
Пример #7
0
 public void ShouldFireAlarmWhenInterruptsAreEnabled()
 {
     using (var machine = new Machine())
     {
         var timer             = new LimitTimer(machine, 1, 10, Direction.Descending, true);
         var manualClockSource = new ManualClockSource();
         machine.SetClockSource(manualClockSource);
         timer.EventEnabled = true;
         var ticked = false;
         timer.LimitReached += () => ticked = true;
         machine.Start();
         // var val =timer.Value;
         manualClockSource.AdvanceBySeconds(110);
         Assert.IsTrue(ticked);
     }
 }
 public void ShouldBeDescending()
 {
     using (var machine = new Machine())
     {
         var timer             = new LimitTimer(machine, 100, 100000, Direction.Descending, true);
         var manualClockSource = new ManualClockSource();
         machine.SetClockSource(manualClockSource);
         machine.Start();
         var oldValue = timer.Limit;
         for (var i = 0; i < 100; i++)
         {
             manualClockSource.AdvanceBySeconds(1);
             var value = timer.Value;
             Assert.Less(value, oldValue, "Timer is not monotonic.");
             oldValue = value;
         }
         machine.Pause();
     }
 }
Пример #9
0
        public void ShouldNotExceedLimitDescending()
        {
            var limit = 100;

            using (var machine = new Machine())
            {
                var timer             = new LimitTimer(machine, 1, limit, Direction.Descending, true);
                var manualClockSource = new ManualClockSource();
                machine.SetClockSource(manualClockSource);
                machine.Start();
                manualClockSource.AdvanceBySeconds(limit - 1);
                for (var i = 0; i < 3; i++)
                {
                    var value = timer.Value;
                    Assert.LessOrEqual(value, limit, "Timer exceeded given limit.");
                    Assert.GreaterOrEqual(value, 0, "Timer returned negative value.");
                    manualClockSource.AdvanceBySeconds(1);
                }
                machine.Pause();
            }
        }