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(); }
public void RemovePendingRequestOnly() { queueNotifier1Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier1Mock.ExpectNoCall("NotifyExitingIntegrationQueue", typeof(bool)); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Second item is same project IIntegrationQueueItem secondQueueItem = new IntegrationQueueItem((IProject)project1Mock.MockInstance, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier2Mock.MockInstance); queueNotifier2Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier2Mock.Expect("NotifyExitingIntegrationQueue", true); integrationQueueUseFirst.Enqueue(secondQueueItem); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(2, itemsOnQueue.Length); integrationQueueUseFirst.RemovePendingRequest((IProject)project1Mock.MockInstance); itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(1, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem1, itemsOnQueue[0]); VerifyAll(); }
public void NoMoreThanOnePendingIntegrationForAProject() { // Setup the first request queueNotifier1Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier1Mock.ExpectNoCall("NotifyExitingIntegrationQueue", typeof(bool)); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Add a second request for same project IIntegrationQueueItem secondQueueItem = new IntegrationQueueItem((IProject)project1Mock.MockInstance, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier1Mock.MockInstance); queueNotifier1Mock.Expect("NotifyEnteringIntegrationQueue"); queueNotifier1Mock.ExpectNoCall("NotifyExitingIntegrationQueue", typeof(bool)); integrationQueueUseFirst.Enqueue(secondQueueItem); // Try to add a third request for same project IIntegrationQueueItem thirdQueueItem = new IntegrationQueueItem((IProject)project1Mock.MockInstance, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier1Mock.MockInstance); queueNotifier1Mock.ExpectNoCall("NotifyEnteringIntegrationQueue"); queueNotifier1Mock.ExpectNoCall("NotifyExitingIntegrationQueue", typeof(bool)); integrationQueueUseFirst.Enqueue(thirdQueueItem); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(2, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem1, itemsOnQueue[0]); Assert.AreSame(secondQueueItem, itemsOnQueue[1]); VerifyAll(); }
public void RemovePendingRequestOnly() { queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Second item is same project IIntegrationQueueItem secondQueueItem = new IntegrationQueueItem((IProject)project1Mock.Object, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier2Mock.Object); queueNotifier2Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); queueNotifier2Mock.Setup(notifier => notifier.NotifyExitingIntegrationQueue(true)).Verifiable(); integrationQueueUseFirst.Enqueue(secondQueueItem); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(2, itemsOnQueue.Length); integrationQueueUseFirst.RemovePendingRequest((IProject)project1Mock.Object); itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(1, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem1, itemsOnQueue[0]); VerifyAll(); queueNotifier1Mock.VerifyNoOtherCalls(); }
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 NoMoreThanOnePendingIntegrationForAProject() { // Setup the first request queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Add a second request for same project IIntegrationQueueItem secondQueueItem = new IntegrationQueueItem((IProject)project1Mock.Object, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier1Mock.Object); queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(secondQueueItem); // Try to add a third request for same project IIntegrationQueueItem thirdQueueItem = new IntegrationQueueItem((IProject)project1Mock.Object, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier1Mock.Object); integrationQueueUseFirst.Enqueue(thirdQueueItem); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(2, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem1, itemsOnQueue[0]); Assert.AreSame(secondQueueItem, itemsOnQueue[1]); queueNotifier1Mock.Verify(notifier => notifier.NotifyEnteringIntegrationQueue(), Times.Exactly(2)); queueNotifier1Mock.Verify(notifier => notifier.NotifyExitingIntegrationQueue(It.IsAny <bool>()), Times.Exactly(0)); VerifyAll(); }
public void HasAttributesAssignedCorrectly() { IProject project = new Project(); IntegrationRequest integrationRequest = new IntegrationRequest(BuildCondition.NoBuild, "Test", null); IIntegrationQueueNotifier integrationQueueNotifier = new TestIntegrationQueueCallback(); IIntegrationQueueItem integrationQueueItem = new IntegrationQueueItem(project, integrationRequest, integrationQueueNotifier); Assert.AreEqual(project, integrationQueueItem.Project); Assert.AreEqual(integrationRequest, integrationQueueItem.IntegrationRequest); Assert.AreEqual(integrationQueueNotifier, integrationQueueItem.IntegrationQueueNotifier); }
public void SecondIntegrationRequestForQueuedProjectShouldNotStartImmediately() { // Setup the first request queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(integrationQueueItem1); // Add a second request for same project IIntegrationQueueItem secondQueueItem = new IntegrationQueueItem((IProject)project1Mock.Object, integrationRequestForceBuild, (IIntegrationQueueNotifier)queueNotifier1Mock.Object); queueNotifier1Mock.Setup(notifier => notifier.NotifyEnteringIntegrationQueue()).Verifiable(); integrationQueueUseFirst.Enqueue(secondQueueItem); IIntegrationQueueItem[] itemsOnQueue = integrationQueueUseFirst.GetQueuedIntegrations(); Assert.AreEqual(2, itemsOnQueue.Length); Assert.AreSame(integrationQueueItem1, itemsOnQueue[0]); Assert.AreSame(secondQueueItem, itemsOnQueue[1]); VerifyAll(); queueNotifier1Mock.VerifyNoOtherCalls(); }