public void basic_automatic() { test( ResolverType.Sequential, BasicTaskStep.Empty("Step"), new[] { 1f }); }
public void step_start_and_end_is_reported() { // Arrange StepStartedEvent?startedEvent = null; StepEndedEvent? endedEvent = null; var events = new TaskExecutionEvents(); events.StepStarted += x => startedEvent = x; events.StepEnded += x => endedEvent = x; var task = new TaskDefinition( BasicTaskStep.Empty("Step")); // Act task.Execute(events: events); // Assert startedEvent.Should().NotBeNull(); startedEvent.Value.Step.Should().BeSameAs(task.Steps[0]); endedEvent.Should().NotBeNull(); endedEvent.Value.Step.Should().BeSameAs(task.Steps[0]); endedEvent.Value.Duration.Should().BePositive(); }
public void basic(ResolverType resolverType) { test( resolverType, BasicTaskStep.Empty("Step"), new byte[] { 100 }); }
public void reporter_creates_and_fills_execution_reports() { // Arrange var task = new TaskDefinition( BasicTaskStep.Empty("Basic"), new PipelineTaskStep <int>( "Pipeline1", new[] { 1 }, new List <PipelineBlock <int> >()), new PipelineTaskStep <int>( "Pipeline2", new[] { 1 }, new List <PipelineBlock <int> >())); var loggerEvents = TaskExecutionLogger.CreateEvents(); var reporterEvents = TaskExecutionReporter.CreateEvents(); // Act task.Execute(events: loggerEvents.Concat(reporterEvents).ToArray()); // Assert var reports = task.GetExecutionReports(); reports.Should().NotBeNull().And.NotBeEmpty(); reports.Should().Contain(x => x.Name == "charts.html"); reports.Should().Contain(x => x.Name == "Pipeline1_charts.html"); reports.Should().Contain(x => x.Name == "Pipeline2_charts.html"); reports.Should().OnlyContain(x => x.Content.StartsWith("<html>")); }
public void test() { // Arrange var task = new TaskDefinition( BasicTaskStep.Empty("Step")); var executor = new TaskExecutorBuilder() .RegisterStepExecution(typeof(BasicTaskStep), new ThrowingStepExecutorResolver()) .Build(); // Act Action act = () => executor.Execute(task); // Assert act.Should().Throw <Exception>().Which.Should().BeSameAs(Error); }
public void events_can_be_registered_for_Executor_instance() { // Arrange var eventHandled = false; var events = new TaskExecutionEvents( taskStarted: _ => eventHandled = true); var task = new TaskDefinition( BasicTaskStep.Empty("Step")); // Act var executor = TaskExecutorFactory.Create(ResolverType.Sequential, events); executor.Execute(task); // Assert eventHandled.Should().BeTrue(); }
public void logger_creates_and_fills_execution_log() { // Arrange var task = new TaskDefinition( BasicTaskStep.Empty("Step")); var events = TaskExecutionLogger.CreateEvents(); // Act var startTs = DateTime.UtcNow; task.Execute(events: events); var endTs = DateTime.UtcNow; // Assert var log = task.GetExecutionLog(); log.Should().NotBeNull(); log.TaskDuration.StartTs.Should().BeOnOrAfter(startTs).And.BeOnOrBefore(endTs); log.DiagnosticsLog.Diagnostics.Should().NotBeEmpty(); }
public void step_ignored___report_still_generated() { // Arrange var task = new TaskDefinition( BasicTaskStep.Empty("Basic"), new BasicTaskStep( "Ignored", () => { }, x => false)); var loggerEvents = TaskExecutionLogger.CreateEvents(); var reporterEvents = TaskExecutionReporter.CreateEvents(); // Act task.Execute(events: loggerEvents.Concat(reporterEvents).ToArray()); // Assert var reports = task.GetExecutionReports(); reports.Should().NotBeNull().And.NotBeEmpty(); }
public void global_and_one_time_events_are_merged() { // Arrange var globalEventHandled = false; var globalEvents = new TaskExecutionEvents( taskStarted: _ => globalEventHandled = true); var oneTimeEventHandled = false; var oneTimeEvents = new TaskExecutionEvents( taskStarted: _ => oneTimeEventHandled = true); var task = new TaskDefinition( BasicTaskStep.Empty("Step")); // Act var executor = TaskExecutorFactory.Create(ResolverType.Sequential, globalEvents); executor.Execute(task, events: oneTimeEvents); // Assert globalEventHandled.Should().BeTrue(); oneTimeEventHandled.Should().BeTrue(); }
public void task_start_and_end_is_reported() { // Arrange TaskStartedEvent?startedEvent = null; TaskEndedEvent? endedEvent = null; var events = new TaskExecutionEvents( taskStarted: x => startedEvent = x, taskEnded: x => endedEvent = x); var task = new TaskDefinition( BasicTaskStep.Empty("Step")); // Act task.Execute(events: events); // Assert startedEvent.Should().NotBeNull(); startedEvent.Value.Task.Should().BeSameAs(task); endedEvent.Should().NotBeNull(); endedEvent.Value.Task.Should().BeSameAs(task); endedEvent.Value.Duration.Should().BePositive(); }