Exemple #1
0
            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));
            }
Exemple #3
0
        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);
        }