public async Task DoNotFailAsync_ConditionNotMeet_TaskFails()
        {
            var failTask = new FailTask();
            await Assert.ThrowsAsync <Exception>(async() => await failTask.DoNotFailOnError(condition : (c, e) => false).ExecuteAsync(Context.Object));

            Assert.Equal(1, failTask.ExecutedTimes);
        }
        public async Task DoNotFailAsync_ConditionMeet_TaskDoesNotFail()
        {
            var failTask = new FailTask();
            await failTask.DoNotFailOnError(condition : (c, e) => true).ExecuteAsync(Context.Object);

            Assert.Equal(1, failTask.ExecutedTimes);
        }
        public async Task DoNotFailAsync_NoCondition_DoesNotFail()
        {
            var failTask = new FailTask();
            await failTask.DoNotFailOnError().ExecuteAsync(Context.Object);

            Assert.Equal(1, failTask.ExecutedTimes);
        }
        public void DoNotFail_ConditionNotMeet_TaskFails()
        {
            var failTask = new FailTask();

            Assert.Throws <Exception>(() => failTask.DoNotFailOnError(condition: (c, e) => false).Execute(Context.Object));
            Assert.Equal(1, failTask.ExecutedTimes);
        }
        public void DoNotFail_ConditionMeet_TaskDoesNotFail()
        {
            var failTask = new FailTask();

            failTask.DoNotFailOnError(condition: (c, e) => true).Execute(Context.Object);
            Assert.Equal(1, failTask.ExecutedTimes);
        }
        public void DoNotFail_NoCondition_DoesNotFail()
        {
            var failTask = new FailTask();

            failTask.DoNotFailOnError().Execute(Context.Object);
            Assert.Equal(1, failTask.ExecutedTimes);
        }