public void EvaluateOneTimeScheduledTaskTest2() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/21/14 15:02:20") }; var task = new StubIOneTimeScheduledTask { StartTimeGet = () => DateTime.Parse("5/21/14 15:02:21") }; //act var result = task.EvalOneTimeTrigger(currentTime); //assert Assert.IsFalse(result); }
public void LogEntryToStringTest() { //Arrange var time = new StubITimeProvider {TimeGet = () => new DateTime(2000, 01, 02, 13, 1, 40, 100)}; var entry = new LogEntry(time) {Source = "UnitTest", Message = "Sample log entry"}; //Assert var result = entry.ToString(); //Act Assert.AreEqual("2000-01-02-01:01:40:100|UnitTest |Sample log entry", result); }
public void IntervalTestBlock1() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/20/14 15:02:21 ") }; var task = new StubIIntervalScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), IntevalGet = () => TimeSpan.FromMilliseconds(1) }; //act var result = task.EvalIntervalTrigger(currentTime); //assert Assert.IsFalse(result); }
public void MonthlyTestBlock1() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/20/14 15:02:20 ") }; var task = new StubIMonthlyScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), RepeatIntervalInMonthsGet = () => 0 }; //act var result = task.EvalMonthlyTrigger(currentTime); //assert Assert.IsFalse(result); }
public void LogEntryToStringTest() { //Arrange var time = new StubITimeProvider { TimeGet = () => new DateTime(2000, 01, 02, 13, 1, 40, 100) }; var entry = new LogEntry(time) { Source = "UnitTest", Message = "Sample log entry" }; //Assert var result = entry.ToString(); //Act Assert.AreEqual("2000-01-02-01:01:40:100|UnitTest |Info |Sample log entry", result); }
public void EvaluateIntervalScheduledTaskTest6() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("6/5/14 17:02:20") }; var task = new StubIIntervalScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), IntevalGet = () => TimeSpan.FromSeconds(1) }; //act var result = task.EvalIntervalTrigger(currentTime); //assert Assert.IsTrue(result); }
public void EvaluateScheduledTaskSkipDaysInverseTest2() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("6/6/14 15:02:20") }; var task = new StubIDailyScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), RepeatIntervalInDaysGet = () => 3 }; //act var result = task.EvalDailyTrigger(currentTime); //assert Assert.IsFalse(result); }
public void EvaluateScheduledTaskMilliSecondsTest4() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/20/14 15:02:21").AddMilliseconds(200) }; var task = new StubIDailyScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20").AddMilliseconds(100), RepeatIntervalInDaysGet = () => 1 }; //act var result = task.EvalDailyTrigger(currentTime); //assert Assert.IsFalse(result); }
public void EvaluateMonthlyScheduledTaskTest6() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("7/1/14 15:02:20") }; var task = new StubIMonthlyScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), RepeatIntervalInMonthsGet = () => 2, DaysOfMonthToActivateGet = () => DaysOfMonth.All }; //act var result = task.EvalMonthlyTrigger(currentTime); //assert Assert.IsTrue(result); }
public void EvaluateWeekingScheduledTaskTest9() { //arrange var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/31/14 15:02:20") }; var task = new StubIWeeklyScheduledTask { StartTimeGet = () => DateTime.Parse("5/20/14 15:02:20"), RepeatIntervalInWeeksGet = () => 1, DaysOfWeekToActivateGet = () => DaysOfWeek.All }; //act var result = task.EvalWeeklyTrigger(currentTime); //assert Assert.IsTrue(result); }
public async Task NewTaskExecutesTest() { var dbConnection = new UnitTestDbConnection(); Database.SetInitializer(new CreateFreshDbInitializer()); var logEntries = new List <LogEntry>(); var ranstoredCommands = new List <int>(); //Arrange var log = new StubIFeedback <LogEntry> { ReportAsyncT0CancellationToken = (e, c) => { Console.WriteLine(e.ToString()); logEntries.Add(e); return(Task.FromResult(0)); } }; var commandProcessor = new StubICommandProcessor { RunCommandAsyncNullableOfInt32StringStringCancellationToken = (commandId, argument, argument2, cancellationToken) => { if (commandId.HasValue) { ranstoredCommands.Add(commandId.Value); } return(Task.FromResult(Result.ReportSuccess())); } }; var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/21/14 15:02:20") }; var cts = new CancellationTokenSource(); var taskRunner = new ScheduledTaskRunner(log, commandProcessor, dbConnection, currentTime); var command = new Command(); var commandScheduledTask = new DataModel.ScheduledTask { IsEnabled = true, Name = "New Command added after start", Command = command }; using (var context = new ZvsContext(dbConnection)) { context.ScheduledTasks.Add(commandScheduledTask); var r2 = await context.TrySaveChangesAsync(cts.Token); Assert.IsFalse(r2.HasError, r2.Message); await taskRunner.StartAsync(cts.Token); await Task.Delay(500, cts.Token); //Act commandScheduledTask.StartTime = DateTime.Parse("5/20/14 15:02:20"); var r = await context.TrySaveChangesAsync(cts.Token); Assert.IsFalse(r.HasError, r.Message); await Task.Delay(1000, cts.Token); await taskRunner.StopAsync(cts.Token); } //Assert Assert.IsTrue(logEntries.All(o => o.Level == LogEntryLevel.Info), "Expected only info type log entries"); Assert.IsTrue(ranstoredCommands.Count == 1, "Scheduled task runner did not run the correct amount of commands."); }
public async Task MultipleAsyncRequestsTest() { var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "MultipleAsyncRequestsTest" }; Database.SetInitializer(new CreateFreshDbInitializer()); var logEntries = new List<LogEntry>(); var ranstoredCommands = new List<int>(); //Arrange var log = new StubIFeedback<LogEntry> { ReportAsyncT0CancellationToken = (e, c) => { Console.WriteLine(e.ToString()); logEntries.Add(e); return Task.FromResult(0); } }; var commandProcessor = new StubICommandProcessor { RunCommandAsyncNullableOfInt32StringStringCancellationToken = (commandId, argument, argument2, cancellationToken) => { if (commandId.HasValue) ranstoredCommands.Add(commandId.Value); return Task.FromResult(Result.ReportSuccess()); } }; var currentTime = new StubITimeProvider { TimeGet = () => DateTime.Parse("5/21/14 15:02:20") }; var cts = new CancellationTokenSource(); var taskRunner = new ScheduledTaskRunner(log, commandProcessor, dbConnection, currentTime); await taskRunner.StartAsync(cts.Token); var command = new Command(); var commandScheduledTask = new DataModel.ScheduledTask { IsEnabled = true, Name = "New Command added after start", Command = command }; using (var context = new ZvsContext(dbConnection)) { context.ScheduledTasks.Add(commandScheduledTask); var r2 = await context.TrySaveChangesAsync(cts.Token); Assert.IsFalse(r2.HasError, r2.Message); commandScheduledTask.StartTime = DateTime.Parse("5/20/14 15:02:20"); var r = await context.TrySaveChangesAsync(cts.Token); Assert.IsFalse(r.HasError, r.Message); commandScheduledTask.StartTime = DateTime.Parse("5/20/14 15:02:21"); var r3 = await context.TrySaveChangesAsync(cts.Token); Assert.IsFalse(r3.HasError, r.Message); } //Act await Task.Delay(2000, cts.Token); await taskRunner.StopAsync(cts.Token); //Assert Assert.IsTrue(logEntries.All(o => o.Level == LogEntryLevel.Info), "Expected only info type log entries"); Assert.IsTrue(ranstoredCommands.Count == 0, "Scheduled task runner did not run the correct amount of commands."); }