public void AddingToOnDemand_DoesntExecuteOriginalOnDemand() { var original = new Func <int>(() => { throw new InvalidOperationException("Got ya!"); }); var onDemand = original.AddOne(); // shouldn't throw exception Assert.Throws <InvalidOperationException>(() => onDemand()); }