public void Access_Success() { var result = MyResult.CreateSuccess("value"); Assert.IsTrue(result.IsSuccess); Assert.AreEqual("value", result.Value); Assert.IsNull(result.Error, "this should fail"); }
public void Combine() { var error1 = MyResult.CreateError(Failure.ItIsRaining); var error1s = MyResult.CreateError(Failure.ItIsRaining); Func <string, MyResult> fails = i => { throw new InvalidOperationException(); }; Assert.AreEqual(error1s, error1.Combine(fails)); Assert.AreEqual(error1s, ResultSuccess.Combine(i => error1s)); Assert.AreEqual(MyResult.CreateSuccess("Hi!"), ResultSuccess.Combine(i => MyResult.CreateSuccess(i + "!"))); }
public void Reference_Value_Is_Checked_For_Null() { // if you have R#, this should be highlighted MyResult.CreateSuccess(default(string)); }