public void OrElse() { Result00.Ok(new T0(0)).OrElse(_ => Result01.Ok(new T0(1))).Should().Be(Result01.Ok(new T0(0))); Result00.Ok(new T0(0)).OrElse(_ => Result01.Err(new E1(1))).Should().Be(Result01.Ok(new T0(0))); Result00.Err(new E0(0)).OrElse(_ => Result01.Ok(new T0(1))).Should().Be(Result01.Ok(new T0(1))); Result00.Err(new E0(0)).OrElse(_ => Result01.Err(new E1(1))).Should().Be(Result01.Err(new E1(1))); }
public void AndThenWorks() { Result00.Ok(new T0(0)).AndThen(_ => Result10.Ok(new T1(1))).Should().Be(Result10.Ok(new T1(1))); Result00.Ok(new T0(0)).AndThen(_ => Result10.Err(new E0(1))).Should().Be(Result10.Err(new E0(1))); Result00.Err(new E0(0)).AndThen(_ => Result10.Ok(new T1(1))).Should().Be(Result10.Err(new E0(0))); Result00.Err(new E0(0)).AndThen(_ => Result10.Err(new E0(1))).Should().Be(Result10.Err(new E0(0))); }
public void OrWorks() { Result00.Ok(new T0(0)).Or(Result01.Ok(new T0(1))).Should().Be(Result01.Ok(new T0(0))); Result00.Ok(new T0(0)).Or(Result01.Err(new E1(1))).Should().Be(Result01.Ok(new T0(0))); Result00.Err(new E0(0)).Or(Result01.Ok(new T0(1))).Should().Be(Result01.Ok(new T0(1))); Result00.Err(new E0(0)).Or(Result01.Err(new E1(1))).Should().Be(Result01.Err(new E1(1))); }
public void NotNullOrWorks() { Result00.NotNullOr(new T0(0), new E0(0)).Should().Be(Result00.Ok(new T0(0))); Result00.NotNullOr(null, new E0(0)).Should().Be(Result00.Err(new E0(0))); }
public void NotNullOrElseWorks() { Result00.NotNullOrElse(new T0(0), () => new E0(0)).Should().Be(Result00.Ok(new T0(0))); Result00.NotNullOrElse(null, () => new E0(0)).Should().Be(Result00.Err(new E0(0))); }