public void PreconditionTrue_ShouldExecuteNestedTask()
        {
            var precondition = new PreconditionTask<string>(
                Task.Const("foo"),
                () => true);

            var result = TaskExtensions.Execute(precondition);

            result.AssertSuccess();
            result.AssertDataIs("foo");
        }
        public void PreconditionFalseNoDefault_ShouldReturnNull()
        {
            var precondition = new PreconditionTask<string>(
                Task.Const("foo"),
                () => false);

            var result = TaskExtensions.Execute(precondition);

            result.AssertSuccess();
            result.AssertDataIs(null);
        }
        public void PreconditionFalse_ShouldReturnValueFromProvider()
        {
            var precondition = new PreconditionTask<string>(
                Task.Const("foo"),
                () => false,
                () => "bar");

            var result = TaskExtensions.Execute(precondition);

            result.AssertSuccess();
            result.AssertDataIs("bar");
        }