public void IfThereIsAnExceptionBuildMessageShouldPublishExceptionMessage() { DynamicMock mock = new DynamicMock(typeof(IMessageBuilder)); mock.ExpectAndThrow("BuildMessage", new Exception("oops"), new IsAnything()); publisher = new EmailPublisher((IMessageBuilder) mock.MockInstance); string message = publisher.CreateMessage(new IntegrationResult()); AssertContains("oops", message); }
public void ShouldHandleIncrementingLabelAfterInitialBuildFailsWithException() { IMock mockSourceControl = new DynamicMock(typeof (ISourceControl)); mockSourceControl.ExpectAndThrow("GetModifications", new Exception("doh!"), new IsAnything(), new IsAnything()); mockSourceControl.ExpectAndReturn("GetModifications", new Modification[] {new Modification()}, new IsAnything(), new IsAnything()); Project project = new Project(); project.Name = "test"; project.SourceControl = (ISourceControl) mockSourceControl.MockInstance; project.StateManager = new StateManagerStub(); try { project.Integrate(new IntegrationRequest(BuildCondition.ForceBuild, "test", null));} catch (Exception) { } project.Integrate(new IntegrationRequest(BuildCondition.ForceBuild, "test", null)); Assert.AreEqual(IntegrationStatus.Success, project.CurrentResult.Status); Assert.AreEqual("1", project.CurrentResult.Label); }
public void ShouldNotResetLabelIfGetModificationsThrowsException() { IMock mockSourceControl = new DynamicMock(typeof (ISourceControl)); mockSourceControl.ExpectAndThrow("GetModifications", new Exception("doh!"), new IsAnything(), new IsAnything()); mockSourceControl.ExpectAndReturn("GetModifications", new Modification[] {new Modification()}, new IsAnything(), new IsAnything()); StateManagerStub stateManagerStub = new StateManagerStub(); stateManagerStub.SaveState(IntegrationResultMother.CreateSuccessful("10")); Project project = new Project(); project.Name = "test"; project.SourceControl = (ISourceControl) mockSourceControl.MockInstance; project.StateManager = stateManagerStub; try { project.Integrate(new IntegrationRequest(BuildCondition.ForceBuild, "test", null));} catch (Exception) { } project.Integrate(new IntegrationRequest(BuildCondition.ForceBuild, "test", null)); Assert.AreEqual(IntegrationStatus.Success, project.CurrentResult.Status); Assert.AreEqual("11", project.CurrentResult.Label); }
public void RunWhereFirstTaskThrowsException() { Workflow project = new Workflow(); Exception ex = new CruiseControlException("foo"); IMock taskMock1 = new DynamicMock(typeof (ITask)); taskMock1.ExpectAndThrow("Run", ex, new NotNull()); IMock taskMock2 = new DynamicMock(typeof (ITask)); taskMock2.Expect("Run", new NotNull()); project.Tasks.Add(taskMock1.MockInstance); project.Tasks.Add(taskMock2.MockInstance); IIntegrationResult result = project.Integrate(ModificationExistRequest()); taskMock1.Verify(); taskMock2.Verify(); Assert.AreEqual(IntegrationStatus.Exception, result.Status); Assert.AreEqual(ex, result.ExceptionResult); }