public void Result_Ok() { var calls = 0; var factory = new Func <int>( () => { calls += 1; return(calls); }); var result = new TryResult <int>(factory); Assert.AreEqual(calls, 0); Assert.AreEqual(result.Unwrap(), 1); Assert.AreEqual(calls, 1); Assert.AreEqual(result.Unwrap(), 1); Assert.AreEqual(calls, 1); }