public async Task RegisterCanceller_should_register_canceller_to_registory() { var registory = new JobRegistory(); var svc = new JobService(CreateJobRepository(), registory, CreateLockService(true), CreateUserResolver()); var id = await svc.ExclusiveCreateAsync("Test", new TestParams()); svc.RegisterCanceller(id.Value, () => { }); Assert.True(registory.ExistCanceller(id.Value)); }
public async Task Cancel_should_call_registered_canceller() { var registory = new JobRegistory(); var svc = new JobService(CreateJobRepository(), registory, CreateLockService(true), CreateUserResolver()); var id = await svc.ExclusiveCreateAsync("Test", new TestParams()); var canceled = false; svc.RegisterCanceller(id.Value, () => { canceled = true; }); Assert.True(registory.ExistCanceller(id.Value)); svc.Cancel(id.Value); Assert.True(canceled); Assert.False(registory.ExistCanceller(id.Value)); }
public async Task Save_finished_job_should_call_unlock() { var unlocked = false; var registory = new JobRegistory(); var lockService = CreateLockService(true, () => { unlocked = true; }); var svc = new JobService(CreateJobRepository(), registory, lockService, CreateUserResolver()); var id = await svc.ExclusiveCreateAsync("Test", new TestParams()); var job = await svc.FindAsync(id.Value); job.FinishAt = DateTime.UtcNow; await svc.SaveAsync(job); Assert.False(registory.ExistJob(id.Value)); Assert.True(unlocked); }