public void TestConfigurationChangeAggregate() { SchedulerConfiguration current = SchedulerConfiguration.Active; try { ISchedule oneOff = Scheduler.GetSchedule("OneOff"); ISchedule gap = Scheduler.GetSchedule("Gap"); ISchedule etm = Scheduler.GetSchedule("EveryTwoMonths"); ISchedule aggregate = Scheduler.GetSchedule("Aggregate"); SchedulerConfiguration newConfig = CloneConfig(current); newConfig.Schedules["Aggregate"].Parameters.Remove("schedule3"); SchedulerConfiguration.Active = newConfig; Thread.Sleep(ConfigurationExtensions.EventBufferMs * 2); Assert.AreSame(oneOff, Scheduler.GetSchedule("OneOff")); Assert.AreSame(gap, Scheduler.GetSchedule("Gap")); Assert.AreSame(etm, Scheduler.GetSchedule("EveryTwoMonths")); AggregateSchedule newAggregate = Scheduler.GetSchedule("Aggregate") as AggregateSchedule; Assert.IsNotNull(newAggregate); Assert.AreNotSame(aggregate, newAggregate); Assert.AreEqual(2, newAggregate.Count()); } finally { SchedulerConfiguration.Active = current; } }
public void EmptyAggregateSchedule() { string name = Tester.RandomGenerator.RandomString(); AggregateSchedule aggregateSchedule = new AggregateSchedule(name); Assert.AreEqual(name, aggregateSchedule.Name); Assert.AreEqual(Instant.MaxValue, aggregateSchedule.Next(TimeHelpers.Clock.Now)); Assert.AreEqual(0, aggregateSchedule.Count()); }
public void SingleAggregateSchedule() { Instant i = new Instant(Tester.RandomGenerator.RandomInt32()); OneOffSchedule oneOffSchedule = new OneOffSchedule(i); AggregateSchedule aggregateSchedule = new AggregateSchedule(oneOffSchedule); Assert.AreEqual(1, aggregateSchedule.Count()); Assert.AreEqual(i, aggregateSchedule.Next(i - TimeHelpers.OneSecond)); Assert.AreEqual(i, aggregateSchedule.Next(i)); Assert.AreEqual(Instant.MaxValue, aggregateSchedule.Next(i + Duration.FromTicks(1))); }
public void DoubleAggregateSchedule() { Instant i = new Instant(Tester.RandomGenerator.RandomInt32()); Instant j = i + TimeHelpers.OneSecond; OneOffSchedule s1 = new OneOffSchedule(i); OneOffSchedule s2 = new OneOffSchedule(j); AggregateSchedule aggregateSchedule = new AggregateSchedule(s1, s2); Assert.AreEqual(2, aggregateSchedule.Count()); Assert.AreEqual(i, aggregateSchedule.Next(i - TimeHelpers.OneSecond)); Assert.AreEqual(i, aggregateSchedule.Next(i)); Assert.AreEqual(j, aggregateSchedule.Next(i + Duration.FromTicks(1))); Assert.AreEqual(j, aggregateSchedule.Next(j)); Assert.AreEqual(Instant.MaxValue, aggregateSchedule.Next(j + Duration.FromTicks(1))); }