public void RemoveProjectClearsOnlyItemsThatAreForThisProject() { queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); queueNotifier1Mock.Setup(notifier => notifier.NotifyExitingIntegrationQueue(false)).Verifiable(); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Second item is different project but same queue project2Mock.SetupGet(project => project.QueueName).Returns(TestQueueName); queueNotifier2Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(integrationQueueItem2); // Third item is same project as the first. IIntegrationQueueItem thirdQueueItem = new IntegrationQueueItem((IProject)project1Mock.Object, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier3Mock.Object); queueNotifier3Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); queueNotifier3Mock.Setup(notifier => notifier.NotifyExitingIntegrationQueue(true)).Verifiable(); integrationQueueUseFirst.Enqueue(thirdQueueItem); integrationQueueUseFirst.RemoveProject((IProject)project1Mock.Object); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(1, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem2, itemsOnQueue[0]); VerifyAll(); queueNotifier2Mock.VerifyNoOtherCalls(); }
public void RemoveProjectClearsOnlyItemsThatAreForThisProject() { queueNotifier1Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier1Mock.Expect("NotifyExitingIntegrationQueue", false); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Second item is different project but same queue project2Mock.SetupResult("QueueName", TestQueueName); queueNotifier2Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier2Mock.ExpectNoCall("NotifyExitingIntegrationQueue", typeof(bool)); integrationQueueUseFirst.Enqueue(integrationQueueItem2); // Third item is same project as the first. IIntegrationQueueItem thirdQueueItem = new IntegrationQueueItem((IProject)project1Mock.MockInstance, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier3Mock.MockInstance); queueNotifier3Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier3Mock.Expect("NotifyExitingIntegrationQueue", true); integrationQueueUseFirst.Enqueue(thirdQueueItem); integrationQueueUseFirst.RemoveProject((IProject)project1Mock.MockInstance); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(1, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem2, itemsOnQueue[0]); VerifyAll(); }
private void Stopped() { // the state was set to 'Stopping', so set it to 'Stopped' state = ProjectIntegratorState.Stopped; thread = null; // Ensure that any queued integrations are cleared for this project. integrationQueue.RemoveProject(project); Log.Info("Integrator for project: " + project.Name + " is now stopped."); }