public static void FromError1() { var nok = Fallible.FromError(Error); Assert.True(nok.IsError); Assert.False(nok.IsSuccess); }
public static void ToExceptionInfo2() { var nok = Fallible.FromError(Error); var result = nok.ToExceptionInfo(); Assert.Equal(Error, result); }
public static void Equality3() { var ok = Fallible.Ok; var nok = Fallible.FromError(Error); Assert.True(nok != ok); }
public static void GetHashCode2() { var nok1 = Fallible.FromError(Error); var nok2 = Fallible.FromError(Error); Assert.Equal(nok1.GetHashCode(), nok2.GetHashCode()); }
public static void cast2() { var nok = Fallible.FromError(Error); var result = (ExceptionDispatchInfo)nok; Assert.Equal(Error, result); }
public static void Deconstruct2() { var nok = Fallible.FromError(Error); var(succeed, err) = nok; Assert.False(succeed); Assert.Same(Error, err); }
public static void Deconstruct2() { var nok = Fallible <Obj> .FromError(Error); var(succeed, value, err) = nok; Assert.False(succeed); Assert.Same(Error, err); Assert.Null(value); }
public Fallible <TResult> ZipWith <TSecond, TResult>( Fallible <TSecond> second, Func <T, TSecond, TResult> zipper) { Require.NotNull(zipper, nameof(zipper)); return(IsError && second.IsError ? Fallible <TResult> .FromError(Error) : Fallible <TResult> .η(zipper(Value, second.Value))); }
public static void ValueOrElse_ReturnsOther_IfError() { var nok = Fallible <Obj> .FromError(Error); var exp = new Obj(); Assert.Same(exp, nok.ValueOrElse(exp)); Assert.Same(exp, nok.ValueOrElse(() => exp)); }
public static void ThrowIfError2() { var nok = Fallible.FromError(Error); var ex = Record.Exception(() => nok.ThrowIfError()); Assert.NotNull(ex); Assert.IsType <SimpleException>(ex); Assert.Equal(ErrorMessage, ex.Message); }
public static void Equals1() { var ok = Fallible.Ok; Assert.True(ok.Equals(ok)); var nok = Fallible.FromError(Error); Assert.True(nok.Equals(nok)); }
public static void Equals3() { var ok = Fallible.Ok; Assert.False(ok.Equals(new Obj())); var nok = Fallible.FromError(Error); Assert.False(nok.Equals(new Obj())); }
public static void ToString1() { var ok = Fallible.Ok; Assert.Equal("Success", ok.ToString()); var nok = Fallible.FromError(Error); Assert.Contains(Error.ToString(), nok.ToString(), StringComparison.OrdinalIgnoreCase); }
public static void ValueOrElse0() { var ok = Fallible.Of(new Obj()); Assert.Throws <ArgumentNullException>("valueFactory", () => ok.ValueOrElse((Func <Obj>)null)); var nok = Fallible <Obj> .FromError(Error); Assert.Throws <ArgumentNullException>("valueFactory", () => nok.ValueOrElse((Func <Obj>)null)); }
public static void GetHashCode1() { var nok = Fallible.FromError(Error); Assert.Equal(nok.GetHashCode(), nok.GetHashCode()); var ok = Fallible.Ok; Assert.Equal(ok.GetHashCode(), ok.GetHashCode()); }
public static void ToString1() { var value = new Obj("My value"); var ok = Fallible.Of(value); Assert.Contains(value.ToString(), ok.ToString(), StringComparison.OrdinalIgnoreCase); var nok = Fallible <Obj> .FromError(Error); Assert.Contains(Error.ToString(), nok.ToString(), StringComparison.OrdinalIgnoreCase); }
public static void GetHashCode3() { var nok1 = Fallible.FromError(Error); var nok2 = Fallible.FromError(Error1); Assert.NotEqual(nok1.GetHashCode(), nok2.GetHashCode()); var ok = Fallible.Ok; Assert.NotEqual(nok1.GetHashCode(), ok.GetHashCode()); }
public static void ValueOrThrow_Throws_IfError() { var nok = Fallible <Obj> .FromError(Error); Action act = () => nok.ValueOrThrow(); var ex = Record.Exception(act); Assert.NotNull(ex); Assert.IsType <SimpleException>(ex); Assert.Equal(ErrorMessage, ex.Message); }
public static void Equals4() { var ok = Fallible.Ok; var nok = Fallible.FromError(Error); var nok1 = Fallible.FromError(Error1); var nok2 = Fallible.FromError(Error1); Assert.False(ok.Equals(nok)); Assert.False(nok1.Equals(nok)); Assert.True(nok1.Equals(nok2)); }
public static void Equality1() { var nok1 = Fallible.FromError(Error); var nok2 = Fallible.FromError(Error); Assert.True(nok1 == nok2); Assert.False(nok1 != nok2); var nok3 = Fallible.FromError(Error); var nok4 = Fallible.FromError(Error1); Assert.False(nok3 == nok4); Assert.True(nok3 != nok4); }
public static Fallible <TResult> TryWith <TResult>(Func <TResult> func) { Require.NotNull(func, nameof(func)); try { return(Of(func())); } catch (Exception ex) { var edi = ExceptionDispatchInfo.Capture(ex); return(Fallible <TResult> .FromError(edi)); } }
public static void GetHashCode2() { var nok1 = Fallible <Obj> .FromError(Error); var nok2 = Fallible <Obj> .FromError(Error); Assert.Equal(nok1.GetHashCode(), nok2.GetHashCode()); Assert.Equal(nok1.GetHashCode(EqualityComparer <Obj> .Default), nok2.GetHashCode(EqualityComparer <Obj> .Default)); var ok1 = Fallible.Of(Tuple.Create("1")); var ok2 = Fallible.Of(Tuple.Create("1")); Assert.Equal(ok1.GetHashCode(), ok2.GetHashCode()); Assert.Equal(ok1.GetHashCode(EqualityComparer <Tuple <string> > .Default), ok2.GetHashCode(EqualityComparer <Tuple <string> > .Default)); }
public static void GetHashCode1() { var nok = Fallible <Obj> .FromError(Error); Assert.Equal(nok.GetHashCode(), nok.GetHashCode()); Assert.Equal(nok.GetHashCode(EqualityComparer <Obj> .Default), nok.GetHashCode(EqualityComparer <Obj> .Default)); var ok1 = Fallible.Of(new Obj()); Assert.Equal(ok1.GetHashCode(), ok1.GetHashCode()); Assert.Equal(ok1.GetHashCode(EqualityComparer <Obj> .Default), ok1.GetHashCode(EqualityComparer <Obj> .Default)); var ok2 = Fallible.Of(1); Assert.Equal(ok2.GetHashCode(), ok2.GetHashCode()); Assert.Equal(ok2.GetHashCode(EqualityComparer <int> .Default), ok2.GetHashCode(EqualityComparer <int> .Default)); }
public static void GetHashCode3() { var nok1 = Fallible <int> .FromError(Error); var nok2 = Fallible <int> .FromError(Error1); Assert.NotEqual(nok1.GetHashCode(), nok2.GetHashCode()); Assert.NotEqual(nok1.GetHashCode(EqualityComparer <int> .Default), nok2.GetHashCode(EqualityComparer <int> .Default)); var ok1 = Fallible.Of(1); var ok2 = Fallible.Of(2); Assert.NotEqual(ok1.GetHashCode(), ok2.GetHashCode()); Assert.NotEqual(ok1.GetHashCode(EqualityComparer <int> .Default), ok2.GetHashCode(EqualityComparer <int> .Default)); Assert.NotEqual(ok1.GetHashCode(), nok1.GetHashCode()); Assert.NotEqual(ok1.GetHashCode(EqualityComparer <int> .Default), nok1.GetHashCode(EqualityComparer <int> .Default)); }
public static Fallible <TResult> TryFinally <TResult>(Func <TResult> func, Action finallyAction) { Require.NotNull(func, nameof(func)); Require.NotNull(finallyAction, nameof(finallyAction)); try { return(Of(func())); } catch (Exception ex) { var edi = ExceptionDispatchInfo.Capture(ex); return(Fallible <TResult> .FromError(edi)); } finally { finallyAction(); } }
public Fallible <TResult> SelectMany <TMiddle, TResult>( Func <T, Fallible <TMiddle> > selector, Func <T, TMiddle, TResult> resultSelector) { Require.NotNull(selector, nameof(selector)); Require.NotNull(resultSelector, nameof(resultSelector)); if (IsError) { return(Fallible <TResult> .FromError(Error)); } var middle = selector(Value); if (middle.IsError) { return(Fallible <TResult> .FromError(Error)); } return(Fallible <TResult> .η(resultSelector(Value, middle.Value))); }
public static void ValueOrDefault_ReturnsDefault_IfError() { var nok = Fallible <Obj> .FromError(Error); Assert.Same(default(Obj), nok.ValueOrDefault()); }
public static void FromError0() => Assert.Throws <ArgumentNullException>("error", () => Fallible <int> .FromError(null));
public static void FromError1() { var result = Fallible <int> .FromError(Error); Assert.True(result.IsError); }
public static void ValueOrNone_ReturnsNone_IfError() { var nok = Fallible <Obj> .FromError(Error); Assert.True(nok.ValueOrNone().IsNone); }