public void CoerceValueTest() { string coercionSuffix = "-coerced"; DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.ValueProperty, (dependencyObject, value) => (string)value + coercionSuffix); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; entry.SetValue(1, "value1"); Assert.AreEqual("value1-coerced", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); entry.CoerceValue(); Assert.AreEqual("value1-coerced", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); coercionSuffix = "-coerced2"; entry.CoerceValue(); Assert.AreEqual("value1-coerced2", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(2, valueChangedCount); }
public void ClearValueTest() { int valueChangedCount = 0; IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.ValueChanged += (sender, e) => valueChangedCount++; int coercedValueChangedCount = 0; IDependencyPropertyValueEntry coercedDependencyPropertyValue = new CoercedDependencyPropertyValueEntry(dependencyPropertyValue, null, CoerceValueCallback); coercedDependencyPropertyValue.ValueChanged += (sender, e) => coercedValueChangedCount++; dependencyPropertyValue.SetBaseValue(0, "base0"); dependencyPropertyValue.SetBaseValue(1, "base1"); dependencyPropertyValue.SetAnimationValue("animation"); Assert.AreEqual("animation-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual(3, valueChangedCount); Assert.AreEqual(3, coercedValueChangedCount); dependencyPropertyValue.ClearBaseValue(1); Assert.AreEqual("animation-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual(3, valueChangedCount); Assert.AreEqual(3, coercedValueChangedCount); dependencyPropertyValue.ClearAnimationValue(); Assert.AreEqual("base0-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual(4, valueChangedCount); Assert.AreEqual(4, coercedValueChangedCount); }
public void SetValueTest() { DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.ValueProperty, null); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; entry.SetValue(1, "value1"); Assert.AreEqual("value1", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); }
public void GetAnimationValueTest() { IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.SetAnimationValue("animation1"); Assert.AreEqual("animation1", dependencyPropertyValue.GetAnimationValue(false)); dependencyPropertyValue.SetAnimationValue("animation2"); Assert.AreEqual("animation2", dependencyPropertyValue.GetAnimationValue(false)); dependencyPropertyValue.SetAnimationValue("animation3"); Assert.AreEqual("animation3", dependencyPropertyValue.Value); dependencyPropertyValue.SetAnimationValue("animation4"); Assert.AreEqual("animation4", dependencyPropertyValue.Value); }
public void GetValueTest() { IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); IDependencyPropertyValueEntry coercedDependencyPropertyValue = new CoercedDependencyPropertyValueEntry(dependencyPropertyValue, null, CoerceValueCallback); dependencyPropertyValue.SetBaseValue(0, "base0"); Assert.AreEqual("base0-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual("base0", coercedDependencyPropertyValue.GetBaseValue(0, false)); dependencyPropertyValue.SetBaseValue(1, "base1"); Assert.AreEqual("base1-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual("base1", coercedDependencyPropertyValue.GetBaseValue(1, false)); dependencyPropertyValue.SetAnimationValue("animation"); Assert.AreEqual("animation-coerced", coercedDependencyPropertyValue.Value); Assert.AreEqual("animation", coercedDependencyPropertyValue.GetAnimationValue(false)); }
public void ClearAnimationValueTest() { int valueChangedCount = 0; IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.ValueChanged += (sender, e) => valueChangedCount++; dependencyPropertyValue.SetBaseValue(0, "base1"); dependencyPropertyValue.SetAnimationValue("animation1"); Assert.AreEqual("animation1", dependencyPropertyValue.Value); Assert.AreEqual(2, valueChangedCount); dependencyPropertyValue.ClearAnimationValue(); Assert.AreEqual("base1", dependencyPropertyValue.Value); Assert.AreEqual(3, valueChangedCount); }
public void SetNotifyChangedValueTest() { DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.NotifyChangedValueProperty, null); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; NotifyChangedValue value = new NotifyChangedValue(); entry.SetValue(1, value); Assert.AreEqual(value, entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); value.RaiseChanged(); Assert.AreEqual(2, valueChangedCount); }
public void ClearValueTest() { DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.ValueProperty, null); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; entry.SetValue(2, "value1"); Assert.AreEqual("value1", entry.Value); Assert.AreEqual(2, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); entry.SetValue(2, ObservableValue.UnsetValue); Assert.AreEqual(ObservableValue.UnsetValue, entry.Value); Assert.AreEqual(0, entry.ValuePriority); Assert.AreEqual(2, valueChangedCount); }
public void GetBaseValuePriorityTest() { DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.ValueProperty, null); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; entry.SetValue(1, "value1"); Assert.AreEqual("value1", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, entry.GetBaseValuePriority()); Assert.AreEqual(1, valueChangedCount); entry.SetValue(2, "value2"); Assert.AreEqual("value2", entry.Value); Assert.AreEqual(2, entry.ValuePriority); Assert.AreEqual(2, entry.GetBaseValuePriority()); Assert.AreEqual(2, valueChangedCount); entry.SetValue(DependencyPropertyValueEntry.BaseValueHighestPriority, "value3"); Assert.AreEqual("value3", entry.Value); Assert.AreEqual(DependencyPropertyValueEntry.BaseValueHighestPriority, entry.ValuePriority); Assert.AreEqual(DependencyPropertyValueEntry.BaseValueHighestPriority, entry.GetBaseValuePriority()); Assert.AreEqual(3, valueChangedCount); entry.SetValue(DependencyPropertyValueEntry.BaseValueHighestPriority + 1, "value4"); Assert.AreEqual("value4", entry.Value); Assert.AreEqual(DependencyPropertyValueEntry.BaseValueHighestPriority + 1, entry.ValuePriority); Assert.AreEqual(DependencyPropertyValueEntry.BaseValueHighestPriority, entry.GetBaseValuePriority()); Assert.AreEqual(4, valueChangedCount); entry.SetValue(DependencyPropertyValueEntry.BaseValueHighestPriority, TestObject.InvalidValue); Assert.AreEqual("value4", entry.Value); Assert.AreEqual(DependencyPropertyValueEntry.BaseValueHighestPriority + 1, entry.ValuePriority); Assert.AreEqual(2, entry.GetBaseValuePriority()); Assert.AreEqual(4, valueChangedCount); entry.SetValue(DependencyPropertyValueEntry.BaseValueHighestPriority + 1, TestObject.InvalidValue); Assert.AreEqual("value2", entry.Value); Assert.AreEqual(2, entry.ValuePriority); Assert.AreEqual(2, entry.GetBaseValuePriority()); Assert.AreEqual(5, valueChangedCount); }
public void GetBaseValueTest() { IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.SetAnimationValue("animation1"); dependencyPropertyValue.SetBaseValue(0, "value0"); Assert.AreEqual("value0", dependencyPropertyValue.GetBaseValue(false)); dependencyPropertyValue.SetBaseValue(2, "value2"); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(false)); dependencyPropertyValue.SetBaseValue(1, "value1"); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual("value0", dependencyPropertyValue.GetBaseValue(0, false)); Assert.AreEqual("value1", dependencyPropertyValue.GetBaseValue(1, false)); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(2, false)); }
public void ClearBaseValueTest() { int valueChangedCount = 0; IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.ValueChanged += (sender, e) => valueChangedCount++; dependencyPropertyValue.SetBaseValue(0, "value0"); dependencyPropertyValue.SetBaseValue(1, "value1"); dependencyPropertyValue.SetBaseValue(2, "value2"); Assert.AreEqual(3, valueChangedCount); dependencyPropertyValue.ClearBaseValue(1); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(3, valueChangedCount); dependencyPropertyValue.ClearBaseValue(2); Assert.AreEqual("value0", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(4, valueChangedCount); }
public void SetBaseValueTest() { int valueChangedCount = 0; IDependencyPropertyValueEntry dependencyPropertyValue = new DependencyPropertyValueEntry(new DependencyObject(), TestObject.ValueProperty); dependencyPropertyValue.ValueChanged += (sender, e) => valueChangedCount++; ObservableValue observableValue = new ObservableValue("value3"); dependencyPropertyValue.SetBaseValue(0, "value0"); Assert.AreEqual("value0", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(1, valueChangedCount); dependencyPropertyValue.SetBaseValue(0, "value0a"); Assert.AreEqual("value0a", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(2, valueChangedCount); dependencyPropertyValue.SetBaseValue(2, "value2"); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(3, valueChangedCount); dependencyPropertyValue.SetBaseValue(1, "value1"); Assert.AreEqual("value2", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(3, valueChangedCount); dependencyPropertyValue.SetBaseValue(3, observableValue); Assert.AreEqual(observableValue, dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(4, valueChangedCount); observableValue.Value = "value3a"; Assert.AreEqual(observableValue, dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(5, valueChangedCount); dependencyPropertyValue.SetBaseValue(4, "value4"); Assert.AreEqual("value4", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(6, valueChangedCount); observableValue.Value = "value3b"; Assert.AreEqual("value4", dependencyPropertyValue.GetBaseValue(false)); Assert.AreEqual(6, valueChangedCount); }
public void SetObservableValueTest() { DependencyPropertyValueEntry entry = new DependencyPropertyValueEntry(new TestObject(), TestObject.ValueProperty, null); int valueChangedCount = 0; entry.ValueChanged += (sender, e) => valueChangedCount++; ObservableValue observableValue1 = new ObservableValue(); ObservableValue innerObservableValue = new ObservableValue(); entry.SetValue(1, "value1"); entry.SetValue(2, observableValue1); Assert.AreEqual("value1", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(1, valueChangedCount); observableValue1.BaseValue = "value2"; Assert.AreEqual("value2", entry.Value); Assert.AreEqual(2, entry.ValuePriority); Assert.AreEqual(2, valueChangedCount); observableValue1.BaseValue = innerObservableValue; Assert.AreEqual("value1", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(3, valueChangedCount); innerObservableValue.BaseValue = "value3"; Assert.AreEqual("value3", entry.Value); Assert.AreEqual(2, entry.ValuePriority); Assert.AreEqual(4, valueChangedCount); innerObservableValue.BaseValue = ObservableValue.UnsetValue; Assert.AreEqual("value1", entry.Value); Assert.AreEqual(1, entry.ValuePriority); Assert.AreEqual(5, valueChangedCount); }