Exemplo n.º 1
0
        public void TestCronJobWithEndTime()
        {
            var startTime = new DateTime(2021, 9, 5, 0, 0, 0, DateTimeKind.Utc);

            MockJob.PublishPeriodic("test_job", "0/2 * * ? * *", null, startTime, startTime.AddSeconds(4));

            _timeProvider.CurrentTimeUtc = startTime;

            StopWorkers();
            Assert.AreEqual(0, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1000);

            StopWorkers();
            Assert.AreEqual(0, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2000);

            StopWorkers();
            Assert.AreEqual(1, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(3000);

            StopWorkers();
            Assert.AreEqual(1, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(4000);

            StopWorkers();
            Assert.AreEqual(2, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(5000);

            StopWorkers();
            Assert.AreEqual(2, _counter.Value);
        }
Exemplo n.º 2
0
        public void TestPeriodicJob()
        {
            var startTime = new DateTime(2021, 9, 5, 0, 0, 0, DateTimeKind.Utc);

            MockJob.PublishPeriodic("test_job", 1, startTime);

            _timeProvider.CurrentTimeUtc = startTime;

            StopWorkers();
            Assert.AreEqual(0, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1000);

            StopWorkers();
            Assert.AreEqual(1, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1999);

            StopWorkers();
            Assert.AreEqual(1, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2000);

            StopWorkers();
            Assert.AreEqual(2, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2999);

            StopWorkers();
            Assert.AreEqual(2, _counter.Value);
            StartWorkers();

            _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(3000);

            StopWorkers();
            Assert.AreEqual(3, _counter.Value);
        }