public void GitMaintenanceQueueStopSuceedsWhenQueueIsEmpty() { this.TestSetup(); GitMaintenanceQueue queue = new GitMaintenanceQueue(this.context); queue.Stop(); TestGitMaintenanceStep step = new TestGitMaintenanceStep(this.context, this.gitObjects); queue.TryEnqueue(step).ShouldEqual(false); }
public void GitMaintenanceQueueHandlesTwoJobs() { this.TestSetup(); TestGitMaintenanceStep step1 = new TestGitMaintenanceStep(this.context); TestGitMaintenanceStep step2 = new TestGitMaintenanceStep(this.context); GitMaintenanceQueue queue = new GitMaintenanceQueue(this.context); queue.TryEnqueue(step1); queue.TryEnqueue(step2); step1.EventTriggered.WaitOne(this.maxWaitTime).ShouldBeTrue(); step2.EventTriggered.WaitOne(this.maxWaitTime).ShouldBeTrue(); queue.Stop(); step1.NumberOfExecutions.ShouldEqual(1); step2.NumberOfExecutions.ShouldEqual(1); }
public void GitMaintenanceQueueStopsJob() { this.TestSetup(); GitMaintenanceQueue queue = new GitMaintenanceQueue(this.context); // This step stops the queue after the step is started, // then checks if Stop() was called. WatchForStopStep watchForStop = new WatchForStopStep(queue, this.context, this.gitObjects); queue.TryEnqueue(watchForStop); Assert.IsTrue(watchForStop.EventTriggered.WaitOne(this.maxWaitTime)); watchForStop.SawStopping.ShouldBeTrue(); // Ensure we don't start a job after the Stop() call TestGitMaintenanceStep watchForStart = new TestGitMaintenanceStep(this.context, this.gitObjects); queue.TryEnqueue(watchForStart).ShouldBeFalse(); // This only ensures the event didn't happen within maxWaitTime Assert.IsFalse(watchForStart.EventTriggered.WaitOne(this.maxWaitTime)); queue.Stop(); }