public void UsesCreatorAfterReset() { bool didCallRef = false; var refLazy = new ResettableLazy <string>(() => { if (didCallRef) { return("Second"); } didCallRef = true; return("First"); }); _ = refLazy.Value; refLazy.Reset(); Assert.AreEqual("Second", refLazy.Value); bool didCallVal = false; var valLazy = new ResettableLazyValue <int>(() => { if (didCallVal) { return(1337); } didCallVal = true; return(42); }); _ = valLazy.Value; valLazy.Reset(); Assert.AreEqual(1337, valLazy.Value); }
public void CanBeReset() { var refLazy = new ResettableLazy <string>(() => ""); _ = refLazy.Value; refLazy.Reset(); Assert.IsFalse(refLazy.HasValue); var valLazy = new ResettableLazyValue <int>(() => 0); _ = valLazy.Value; valLazy.Reset(); Assert.IsFalse(valLazy.HasValue); }