public void Recover_on_Success_does_not_call_closure() { var t = new Success<string>("foo"); Exception e = null; Func<Exception, string> c = ex => { e = ex; return "bar"; }; Assert.AreEqual("foo", t.Recover(c).Value); Assert.IsNull(e); }