Exemple #1
0
        protected override void TestTaskOfResult(ResultOrError <int> result)
        {
            Task[] tasks = new Task[]
            {
                result.Async().Bind(() => ResultOrError <int> .Success()),
                result.Async().Bind(() => Result <int, int> .Success(100)),
                result.Async().Bind(() => Result <int, int> .Success(101), error => Result <int, int> .Error(500)),
                result.Async().BindOnError(error => ResultOrError <int> .Error(500)),
                result.Async().BindOnError(error => Result.Error()),

                result.Async().OnSuccess(() => { }),
                result.Async().OnSuccess(() => 101),
                result.Async().OnError(error => { }),
                result.Async().OnError(error => 500),

                result.Async().Either(() => { }, error => { }),
                result.Async().Either(() => 101, error => { }),
                result.Async().Either(() => { }, error => 500),
                result.Async().Either(() => 101, error => 500),

                result.Async().Ensure(() => true, () => 500),
                result.Async().Match(() => true, error => false),
            };

            Task.WaitAll(tasks);
        }
Exemple #2
0
        protected override void TestIEnumerableOfResult(ResultOrError <int>[] results)
        {
            results.Bind(() => ResultOrError <int> .Success()).Count();
            results.Bind(() => Result <int, int> .Success(100)).Count();
            results.Bind(() => Result <int, int> .Success(101), error => Result <int, int> .Error(500)).Count();
            results.BindOnError(error => ResultOrError <int> .Error(500)).Count();
            results.BindOnError(error => Result.Error()).Count();

            results.OnSuccess(() => { }).Count();
            results.OnSuccess(() => 101).Count();
            results.OnError(error => { }).Count();
            results.OnError(error => 500).Count();

            results.Either(() => { }, error => { }).Count();
            results.Either(() => 101, error => { }).Count();
            results.Either(() => { }, error => 500).Count();
            results.Either(() => 101, error => 500).Count();

            results.Ensure(() => true, () => 500).Count();
            results.Match(() => true, error => false).Count();
        }
Exemple #3
0
        protected override void TestSingleResult(ResultOrError <int> result)
        {
            result.Bind(() => ResultOrError <int> .Success());
            result.Bind(() => Result <int, int> .Success(100));
            result.Bind(() => Result <int, int> .Success(101), error => Result <int, int> .Error(500));
            result.BindOnError(error => ResultOrError <int> .Error(500));
            result.BindOnError(error => Result.Error());

            result.OnSuccess(() => { });
            result.OnSuccess(() => 101);
            result.OnError(error => { });
            result.OnError(error => 500);

            result.Either(() => { }, error => { });
            result.Either(() => 101, error => { });
            result.Either(() => { }, error => 500);
            result.Either(() => 101, error => 500);

            result.Ensure(() => true, () => 500);
            result.Match(() => true, error => false);
        }
Exemple #4
0
        protected override void TestLargeContent(ResultOrError <string> result)
        {
            result.Bind(() => ResultOrError <string> .Success());
            result.Bind(() => Result <string, string> .Success(LargeContent));
            result.Bind(() => Result <string, string> .Success(LargeContent), error => Result <string, string> .Error(error));
            result.BindOnError(error => ResultOrError <string> .Error(error));
            result.BindOnError(error => Result <string, string> .Error(error));

            result.OnSuccess(() => { });
            result.OnSuccess(() => LargeContent);
            result.OnError(error => { });
            result.OnError(error => error);

            result.Either(() => { }, error => { });
            result.Either(() => LargeContent, error => { });
            result.Either(() => { }, error => error);
            result.Either(() => LargeContent, error => error);

            result.Ensure(() => true, () => LargeContent);
            result.Match(() => LargeContent, error => error);
        }