public async Task Engines_BasicEngine_ShouldRestorePartiallyCompletedState() { const int jobsterCount = 100; CoreTestContext context = new CoreTestContext(); TestJobster initialJobster = new TestJobster(context) { Status = JobsterStatusEnum.Completed }; IJobsterAsync <CoreTestContext>[] completedState = { initialJobster, new TestJobster( context, false, new [] { initialJobster.JobId }) { Status = JobsterStatusEnum.NotStarted } }; _ = await ExecuteOrchestrator( jobsterCount, jobsterCount, false, ExceptionPolicy.NoThrow, null, completedState); Assert.AreEqual(1, context.Counter); }
public async Task Engines_BasicEngine_ShouldNotRestoreCompletedState() { const int jobsterCount = 100; CoreTestContext context = new CoreTestContext(); IJobsterAsync <CoreTestContext>[] completedState = { new TestJobster(context) { Status = JobsterStatusEnum.Completed }, new TestJobster(context) { Status = JobsterStatusEnum.Completed } }; CoreTestContext newContext = await ExecuteOrchestrator( jobsterCount, jobsterCount, false, ExceptionPolicy.NoThrow, null, completedState); Assert.AreEqual(jobsterCount, newContext.Counter); }
public async Task Engines_BasicEngine_ShouldExecuteAllJobsters( bool moreThanBatchSize) { const int batchSize = 3; int jobsterCount = moreThanBatchSize ? 5 : 2; CoreTestContext context = await ExecuteOrchestrator(jobsterCount, batchSize); Assert.AreEqual(jobsterCount, context.Counter); }
public async Task Engines_BasicEngine_ShouldCancelExecution() { const int jobsterCount = 100; _cancellationTokenSource.Cancel(); CoreTestContext context = await ExecuteOrchestrator(jobsterCount, 1); Assert.AreEqual(0, context.Counter); }
public async Task Engines_BasicEngine_ShouldNotThrowException() { const int jobsterCount = 100; CoreTestContext context = await ExecuteOrchestrator( jobsterCount, 1, true, ExceptionPolicy.NoThrow); Assert.AreEqual(jobsterCount - 1, context.Counter); }
public void Engines_BasicEngine_ShouldThrowExceptionAtTheEnd() { const int jobsterCount = 100; CoreTestContext context = new CoreTestContext(); Assert.ThrowsAsync <JobsterException>(async() => await ExecuteOrchestrator( jobsterCount, 1, true, ExceptionPolicy.ThrowAtTheEnd, context)); Assert.AreEqual(jobsterCount - 1, context.Counter); }
private async Task <CoreTestContext> ExecuteOrchestrator( int jobsterCount, int batchSize, bool jobsterThrowsExceptionInTheMiddle = false, ExceptionPolicy exceptionPolicy = ExceptionPolicy.NoThrow, CoreTestContext context = null, IEnumerable <IJobsterAsync <CoreTestContext> > state = null, MemoryJobsterStateHandler <CoreTestContext> stateHandler = null, IProgressNotifier <CoreTestContext> progressNotifier = null) { context ??= new CoreTestContext(); int middleJobster = jobsterCount / 2; IList <IJobsterAsync <CoreTestContext> > jobsters = new List <IJobsterAsync <CoreTestContext> >(jobsterCount); for (int i = 0; i < jobsterCount; i++) { jobsters.Add(new TestJobster( context, jobsterThrowsExceptionInTheMiddle && i == middleJobster)); } JobsterBuilder <CoreTestContext> builder = new JobsterBuilder <CoreTestContext>(_mockLogger) .AddBatchSize(batchSize) .AddExceptionPolicy(exceptionPolicy) .AddJobsters(jobsters.ToArray()) .AddStateHandler(stateHandler ?? new MemoryJobsterStateHandler <CoreTestContext>( state ?? new IJobsterAsync <CoreTestContext> [0])); if (progressNotifier != null) { builder.AddProgressNotifier(progressNotifier); } _ = await builder .BuildEngine() .ScheduleJobstersAsync(_cancellationTokenSource.Token); return(context); }
public DogsController(CoreTestContext db) { Repository = new DogsRepository(db); }
public PeopleController(CoreTestContext db) { Repository = new PeopleRepository(db); }