public void DoesNotLeakForModelBaseWithPropertiesThatSupportPropertyChanged() { var model = new PersonTestModel(); var weakReference = new WeakReference(model); Assert.IsTrue(weakReference.IsAlive); model = null; GC.Collect(); Assert.IsFalse(weakReference.IsAlive); }
public void CorrectlyCachesBoxedValues() { var model = new PersonTestModel(); var isEnabled1 = model.GetValue(nameof(PersonTestModel.IsEnabled)); var isEnabled2 = model.GetValue(nameof(PersonTestModel.IsEnabled)); Assert.IsTrue(ReferenceEquals(isEnabled1, isEnabled2)); model.SetValue(nameof(PersonTestModel.IsEnabled), true); isEnabled1 = model.GetValue(nameof(PersonTestModel.IsEnabled)); isEnabled2 = model.GetValue(nameof(PersonTestModel.IsEnabled)); Assert.IsTrue(ReferenceEquals(isEnabled1, isEnabled2)); }
public void TheFreezeImplementation() { var model = new PersonTestModel(); var freezable = (IFreezable)model; model.FirstName = "John"; Assert.AreEqual("John", model.FirstName); Assert.IsFalse(freezable.IsFrozen); freezable.Freeze(); model.FirstName = "Jane"; Assert.AreEqual("John", model.FirstName); Assert.IsTrue(freezable.IsFrozen); freezable.Unfreeze(); model.FirstName = "Jane"; Assert.AreEqual("Jane", model.FirstName); Assert.IsFalse(freezable.IsFrozen); }