public virtual void TestInit() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); NUnit.Framework.Assert.IsTrue(scheduler.IsHeartbeatDue(now)); NUnit.Framework.Assert.IsTrue(scheduler.IsBlockReportDue()); } }
public virtual void TestScheduleBlockReportImmediate() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); scheduler.ScheduleBlockReport(0); NUnit.Framework.Assert.IsTrue(scheduler.resetBlockReportTime); Assert.AssertThat(scheduler.nextBlockReportTime, IS.Is(now)); } }
private BPServiceActor.Scheduler MakeMockScheduler(long now) { Log.Info("Using now = " + now); BPServiceActor.Scheduler mockScheduler = Org.Mockito.Mockito.Spy(new BPServiceActor.Scheduler (HeartbeatIntervalMs, BlockReportIntervalMs)); Org.Mockito.Mockito.DoReturn(now).When(mockScheduler).MonotonicNow(); mockScheduler.nextBlockReportTime = now; mockScheduler.nextHeartbeatTime = now; return(mockScheduler); }
public virtual void TestScheduleNextBlockReport2() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); scheduler.resetBlockReportTime = false; scheduler.ScheduleNextBlockReport(); Assert.AssertThat(scheduler.nextBlockReportTime, IS.Is(now + BlockReportIntervalMs )); } }
public virtual void TestScheduleNextBlockReport() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); NUnit.Framework.Assert.IsTrue(scheduler.resetBlockReportTime); scheduler.ScheduleNextBlockReport(); NUnit.Framework.Assert.IsTrue(scheduler.nextBlockReportTime - (now + BlockReportIntervalMs ) < 0); } }
public virtual void TestScheduleBlockReportDelayed() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); long delayMs = 10; scheduler.ScheduleBlockReport(delayMs); NUnit.Framework.Assert.IsTrue(scheduler.resetBlockReportTime); NUnit.Framework.Assert.IsTrue(scheduler.nextBlockReportTime - now >= 0); NUnit.Framework.Assert.IsTrue(scheduler.nextBlockReportTime - (now + delayMs) < 0 ); } }
public virtual void TestScheduleDelayedHeartbeat() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); scheduler.ScheduleNextHeartbeat(); NUnit.Framework.Assert.IsFalse(scheduler.IsHeartbeatDue(now)); // Simulate a delayed heartbeat e.g. due to slow processing by NN. scheduler.nextHeartbeatTime = now - (HeartbeatIntervalMs * 10); scheduler.ScheduleNextHeartbeat(); // Ensure that the next heartbeat is not due immediately. NUnit.Framework.Assert.IsFalse(scheduler.IsHeartbeatDue(now)); } }
public virtual void TestScheduleNextBlockReport3() { foreach (long now in GetTimestamps()) { BPServiceActor.Scheduler scheduler = MakeMockScheduler(now); scheduler.resetBlockReportTime = false; // Make it look like the block report was scheduled to be sent between 1-3 // intervals ago but sent just now. long blockReportDelay = BlockReportIntervalMs + random.Next(2 * (int)BlockReportIntervalMs ); long origBlockReportTime = now - blockReportDelay; scheduler.nextBlockReportTime = origBlockReportTime; scheduler.ScheduleNextBlockReport(); NUnit.Framework.Assert.IsTrue(scheduler.nextBlockReportTime - now < BlockReportIntervalMs ); NUnit.Framework.Assert.IsTrue(((scheduler.nextBlockReportTime - origBlockReportTime ) % BlockReportIntervalMs) == 0); } }