public void Test1000Runs()
        {
            var cronTemplate      = new CronTemplateBuilder().WithEverything().EveryXSeconds(2).Build();
            var simpleCronStream  = new CronTimeStreamSimple(cronTemplate, _dateTimeRepository.Now());
            var reactiveScheduler = new ReactiveScheduler(_dateTimeRepository, _testScheduler, simpleCronStream, true);

            Logger.LogAction = Console.WriteLine;

            int callCount = 0;

            reactiveScheduler.SchedulerObservable.Subscribe(_ => callCount++);

            _testScheduler.AdvanceBy(TimeSpan.FromSeconds(2000).Ticks);
            callCount.Should().Be(1000);
        }
示例#2
0
        public void SimpleTest2()
        {
            var everySecond       = new CronTemplateBuilder().WithEverything().EveryXSeconds(2).Build();
            var stream            = new CronTimeStreamSimple(everySecond, _dateTime);
            var streamCombination = new CronTimeStreamCombination(_dateTime, stream);

            foreach (var time in streamCombination.Take(200))
            {
                PrintTime(time);
            }
            var results = streamCombination.Take(5).ToList();

            results[0].Time.Second.Should().Be(2);
            results[1].Time.Second.Should().Be(4);
            results[2].Time.Second.Should().Be(6);
            results[3].Time.Second.Should().Be(8);
            results[4].Time.Second.Should().Be(10);
        }