/// <summary> /// Initializes a new instance of the <see cref="ProjectTrigger"/> class. /// </summary> /// <param name="factory">The factory.</param> public ProjectTrigger(ICruiseServerClientFactory factory) { this.factory = factory; this.ServerUri = DefaultServerUri; this.TriggerStatus = IntegrationStatus.Success; this.InnerTrigger = ProjectTrigger.NewIntervalTrigger(); this.TriggerFirstTime = false; }
public void ShouldNotTriggerOnFirstIntegration() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void ShouldNotTriggerOnFirstIntegrationIfDependentProjectBuildFailedAndTriggerFirstTimeIsSet() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Failure, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void ShouldTriggerOnFirstIntegrationIfDependentProjectBuildSucceededAndTriggerFirstTimeIsSet() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = InitialiseClientMock( true, NewProjectStatus("project", IntegrationStatus.Success, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public void PopulateFromConfiguration() { string xml = @"<projectTrigger> <serverUri>http://fooserver:12342/CruiseManager.rem</serverUri> <project>Foo</project> <triggerStatus>Failure</triggerStatus> <triggerFirstTime>True</triggerFirstTime> <innerTrigger type=""intervalTrigger""> <buildCondition>ForceBuild</buildCondition> <seconds>10</seconds> </innerTrigger> </projectTrigger>"; trigger = (ProjectTrigger) NetReflector.Read(xml); Assert.AreEqual("http://fooserver:12342/CruiseManager.rem", trigger.ServerUri); Assert.AreEqual("Foo", trigger.Project); Assert.IsNotNull(trigger.InnerTrigger); Assert.AreEqual(IntegrationStatus.Failure, trigger.TriggerStatus); Assert.IsTrue(trigger.TriggerFirstTime); }
protected void SetUp() { now = DateTime.Now; later = now.AddHours(1); mockCruiseManager = new DynamicMock(typeof (ICruiseManager)); mockFactory = new DynamicMock(typeof (ICruiseManagerFactory)); mockInnerTrigger = new DynamicMock(typeof (ITrigger)); trigger = new ProjectTrigger((ICruiseManagerFactory) mockFactory.MockInstance); trigger.Project = "project"; trigger.InnerTrigger = (ITrigger) mockInnerTrigger.MockInstance; }
public void PopulateFromMinimalConfiguration() { string xml = @"<projectTrigger><project>Foo</project></projectTrigger>"; trigger = (ProjectTrigger) NetReflector.Read(xml); Assert.AreEqual("tcp://localhost:21234/CruiseManager.rem", trigger.ServerUri); Assert.AreEqual("Foo", trigger.Project); Assert.IsNotNull(trigger.InnerTrigger); Assert.AreEqual(IntegrationStatus.Success, trigger.TriggerStatus); Assert.IsFalse(trigger.TriggerFirstTime); }
public void TriggerWhenDependentProjectBuildsSuccessfully() { var innerTriggerMock = this.InitialiseTriggerMock(2); var clientMocks = new[] { InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)), InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, later)) }; var factoryMock = this.InitialiseFactoryMock(clientMocks); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); trigger.Fire(); var actual = trigger.Fire(); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public void FirePassesInLoginCredentialsAndHandlesFailure() { var credentials = new[] { new NameValuePair("user", "me") }; var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = InitialiseClientMock( false, NewProjectStatus("project", IntegrationStatus.Success, now)); Expect.Call(clientMock.Login(new List<NameValuePair>(credentials))).Return(false); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true, SecurityCredentials = credentials }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public void HandleSocketError() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = this.mocks.StrictMock<CruiseServerClientBase>(); var factoryMock = this.InitialiseFactoryMock(clientMock); Expect.Call(clientMock.SessionToken).SetPropertyAndIgnoreArgument(); Expect.Call(clientMock.GetProjectStatus()) .Throw(new SocketException()); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void HandleExceptionInProjectLocator() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = this.InitialiseClientMock(true, NewProjectStatus("wrong", IntegrationStatus.Failure, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); Assert.Throws<NoSuchProjectException>(() => trigger.Fire()); this.mocks.VerifyAll(); }
public void NextBuildShouldReturnInnerTriggerNextBuildIfUnknown() { var innerTriggerMock = this.mocks.StrictMock<ITrigger>(); Expect.Call(innerTriggerMock.NextBuild).Return(now); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; mocks.ReplayAll(); var actual = trigger.NextBuild; mocks.VerifyAll(); Assert.AreEqual(now, actual); }
public void IntegrationCompletedShouldDelegateToInnerTrigger() { var innerTriggerMock = this.mocks.StrictMock<ITrigger>(); Expect.Call(() => innerTriggerMock.IntegrationCompleted()); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; mocks.ReplayAll(); trigger.IntegrationCompleted(); mocks.VerifyAll(); }
public void DoNotTriggerIfProjectHasNotBuiltSinceLastPoll() { var innerTriggerMock = this.InitialiseTriggerMock(2); var clientMocks = new[] { InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)), InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)) }; var factoryMock = this.InitialiseFactoryMock(clientMocks); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); trigger.Fire(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void DoNotTriggerWhenInnerTriggerReturnsNoBuild() { var innerTriggerMock = this.mocks.StrictMock<ITrigger>(); Expect.Call(innerTriggerMock.Fire()).Return(null); var factoryMock = this.mocks.StrictMock<ICruiseServerClientFactory>(); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }