public void Start_Should_LoopBySpan() { var mockTask = MockTask.Create(); int loopCount = 3; using (var loopTask = new SimpleLoopTask()) { loopTask.LoopSpan = TimeSpan.FromMilliseconds(50); loopTask.LoopAction = mockTask.MockAction; loopTask.AfterExitLoopAction = mockTask.MockStopAction; loopTask.Start(); Task.Delay(TimeSpan.FromMilliseconds(50 * loopCount + 20)).Wait(); mockTask.StopInvoked.ShouldFalse(); } (mockTask.InvokeCount >= 3).ShouldTrue(); (mockTask.InvokeCount <= 4).ShouldTrue(); mockTask.StopInvoked.ShouldTrue(); }
public async Task LogMessage_Replace_Should_Ok() { using (var simpleDaemon = new SimpleDaemon()) { var mockLog = new MockLog(); simpleDaemon.LogMessage = msg => mockLog.Log(msg); var config = TimeSpan.FromMilliseconds(50); var mockTask = MockTask.Create(); var startResult = await simpleDaemon.Start(config, mockTask.MockAction, false).ConfigureAwait(false); startResult.Success.ShouldTrue(); startResult.Message.Log(); var startResult2 = await simpleDaemon.Start(config, mockTask.MockAction, false).ConfigureAwait(false); startResult2.Success.ShouldFalse(); startResult2.Message.Log(); } }
public async Task Stop_SecondTime_Should_Ignore() { using (var simpleDaemon = new SimpleDaemon()) { var config = TimeSpan.FromMilliseconds(50); var mockTask = MockTask.Create(); var startResult = await simpleDaemon.Start(config, mockTask.MockAction, false).ConfigureAwait(false); startResult.Success.ShouldTrue(); startResult.Message.Log(); var stopResult = await simpleDaemon.Stop().ConfigureAwait(false); stopResult.Success.ShouldTrue(); stopResult.Message.Log(); var stopResult2 = await simpleDaemon.Stop().ConfigureAwait(false); stopResult2.Success.ShouldTrue(); stopResult2.Message.Log(); } }
public void Stop_Should_StopAfterLooping() { var mockTask = MockTask.Create(); int loopCount = 3; //todo: fix failed sometimes using (var loopTask = new SimpleLoopTask()) { loopTask.LoopSpan = TimeSpan.FromMilliseconds(50); loopTask.LoopAction = mockTask.MockAction; loopTask.AfterExitLoopAction = mockTask.MockStopAction; loopTask.Start(); Task.Delay(TimeSpan.FromMilliseconds(50 * loopCount + 20)).Wait(); loopTask.Stop(); Task.Delay(TimeSpan.FromMilliseconds(50 * 2)).Wait(); mockTask.StopInvoked.ShouldTrue(); } (mockTask.InvokeCount >= 4).ShouldTrue(); (mockTask.InvokeCount <= 5).ShouldTrue(); mockTask.StopInvoked.ShouldTrue(); }