public void Transform_of_Success_calls_success_closure() { var t = new Success<int>(42); var successCalled = false; var failureCalled = false; Func<int, Try<string>> success = v => { successCalled = true; return new Success<string>(v.ToString()); }; Func<Exception, Try<string>> failure = e => { failureCalled = true; return new Success<string>(e.Message); }; Assert.AreEqual("42", t.Transform(success, failure).Value); Assert.IsTrue(successCalled); Assert.IsFalse(failureCalled); }