Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }