Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }