public void ThreeSteps_SecondStepThrowsException_DoesntRunThirdStep() { var stepOneCount = 0; var stepTwoCount = 0; var stepThreeCount = 0; var stepper = new Stepper(); stepper .AddFirstStep(() => { stepOneCount++; return(StepResult.Success(1)); }) .Then <int>(test => { stepTwoCount++; throw new Exception("Fake Exception!"); }) .Then(test => { stepThreeCount++; return(StepResult.Success(1)); }); stepper.RunJob(); Assert.AreEqual(1, stepOneCount); Assert.AreEqual(1, stepTwoCount); Assert.AreEqual(0, stepThreeCount); }
public void ThreeSteps_UsingLambdaFunctions_RunsEachStepOnce() { var stepOneCount = 0; var stepTwoCount = 0; var stepThreeCount = 0; var stepper = new Stepper(); stepper .AddFirstStep(() => { stepOneCount++; return(StepResult.Success("ghj")); }) .Then(test => { stepTwoCount++; return(StepResult.Success(1)); }) .Then(test => { stepThreeCount++; return(StepResult.Success(1)); }); stepper.RunJob(); Assert.AreEqual(1, stepOneCount); Assert.AreEqual(1, stepTwoCount); Assert.AreEqual(1, stepThreeCount); }
public void ThreeSteps_SecondStepReturnsFailedStepResult_DoesntRunThirdStep() { var stepOneCount = 0; var stepTwoCount = 0; var stepThreeCount = 0; var stepper = new Stepper(); stepper .AddFirstStep(() => { stepOneCount++; return(StepResult.Success(1)); }) .Then(test => { stepTwoCount++; if (false) { return(StepResult.Success(2)); } return(StepResult.Failure()); }) .Then(test => { stepThreeCount++; return(StepResult.Success(1)); }); stepper.RunJob(); Assert.AreEqual(1, stepOneCount); Assert.AreEqual(1, stepTwoCount); Assert.AreEqual(0, stepThreeCount); }
public void ThreeSteps_FromPrivateMethodGroups_ShouldRunAllThreeStepsOnce() { _stepCount = 0; var stepper = new Stepper(); stepper .AddFirstStep(TestStepOne) .Then(TestStepTwo) .Then(TestStepThree); var result = stepper.RunJob(0); Assert.AreEqual(3, _stepCount); }
public void OneStep_UsingLambdaFunction_RunsFunctionOnce() { var runCount = 0; var stepper = new Stepper(); stepper.AddFirstStep(() => { runCount++; return(StepResult.Success(0)); }); stepper.RunJob(); Assert.AreEqual(1, runCount); }
public void OneStep_HasBothSuccessAndFailStepResult_DoesntThrowException() { var stepper = new Stepper(); stepper.AddFirstStep(() => { if (true) { return(StepResult.Success(1)); } return(StepResult.Failure()); }) .Then(test => { Console.WriteLine(test); return(StepResult.Success()); }); var jobResult = stepper.RunJob(); Assert.AreEqual(false, jobResult.HasFailed); }