public void Invoke_NotAttached_IsNoOp() { StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Foo", Brushes.Green); trigger.FireStubTrigger(); }
/// <summary> /// Properties the name changed. /// </summary> /// <param name="dependencyObject">The dependency object.</param> /// <param name="arg">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> private static void PropertyNameChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs arg) { var control = (Control)dependencyObject; var collection = new BehaviorCollection(); var validationBehavior = new ValidationBehavior() { PropertyName = arg.NewValue.ToString() }; var changePropertyIsValidAction = new ChangePropertyAction { PropertyName = new PropertyPath(nameof(Control.Style)), Value = null }; var errorStyle = new Style { TargetType = typeof(Control) }; errorStyle.Setters.Add(new Setter(Control.BorderBrushProperty, new SolidColorBrush(Colors.Red))); var changePropertyIsInvalidAction = new ChangePropertyAction { PropertyName = new PropertyPath(nameof(Control.Style)), Value = errorStyle }; validationBehavior.WhenValidActions.Add(changePropertyIsValidAction); validationBehavior.WhenInvalidActions.Add(changePropertyIsInvalidAction); collection.Add(validationBehavior); control.SetValue(Interaction.BehaviorsProperty, collection); }
public void Invoke_NoPropertyName_IsNoOp() { StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(null, Brushes.Green); trigger.Actions.Add(action); trigger.FireStubTrigger(); }
public void Invoke_ReadOnlyProperty_ThrowsArgumentException() { Button button = CreateButton(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("IsDefaulted", true); AttachAction(button, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_InvalidPropertyFormatString_ThrowsException() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Width", "0.0.0.0"); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_IncompatiblePropertyWithValueType_ThrowsArgumentException() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Width", Brushes.Green); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_InvalidPropertyName_ThrowsArgumentException() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Foo", Brushes.Green); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_AnimatedObjectChange_Changes() { Ellipse e = new Ellipse(); ChangePropertyAction c = CreateChangePropertyAction("Fill", Brushes.Gray); StubTrigger t = CreateStubTrigger(); AttachAction(e, t, c); c.Duration = TimeSpan.FromMilliseconds(5); t.FireStubTrigger(); }
public void Invoke_AnimatedPointChange_Changes() { Ellipse e = new Ellipse(); ChangePropertyAction c = CreateChangePropertyAction("RenderTransformOrigin", new System.Windows.Point(0.3, 0.3)); StubTrigger t = CreateStubTrigger(); AttachAction(e, t, c); c.Duration = TimeSpan.FromMilliseconds(5); t.FireStubTrigger(); }
public void Invoke_AnimatedColorChange_Changes() { SolidColorBrush brush = new SolidColorBrush(Colors.Red); ChangePropertyAction c = CreateChangePropertyAction("Color", Colors.Gray); StubTrigger t = CreateStubTrigger(); AttachAction(brush, t, c); c.Duration = TimeSpan.FromMilliseconds(5); t.FireStubTrigger(); }
public void Invoke_AnimatedDoubleChange_Changes() { Ellipse e = new Ellipse(); ChangePropertyAction c = CreateChangePropertyAction("Opacity", 0.0d); StubTrigger t = CreateStubTrigger(); AttachAction(e, t, c); c.Duration = TimeSpan.FromMilliseconds(5); t.FireStubTrigger(); }
public void Invoke_RedFillToGreen_ChangesToGreen() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Fill", Brushes.Green); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(rectangle.Fill, Brushes.Green, "rectangle.Fill == Green"); }
public void Invoke_InaccessibleProperty_ThrowsArgumentException() { Button button = CreateButton(); StubTrigger trigger = CreateStubTrigger(); // EffectiveValuesInitialSize is an internal property on Button, and should be inaccessible ChangePropertyAction action = CreateChangePropertyAction("EffectiveValuesInitialSize", 10); AttachAction(button, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_IncrementWithInvalidAdditionType_SetsValueInstead() { Rectangle host = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Fill", Brushes.Red); action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(host.Fill, Brushes.Red, "Rectangle.Fill should be Red, as Increment was not possible."); }
public void Invoke_IncrementUnsetNonAdditiveProperty_SetsPropertyToSpecifiedValue() { Rectangle host = CreateEmptyRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Fill", Brushes.Red); action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(host.Fill, Brushes.Red, "Rectangle's Fill should have been set to Red, ignoring the Increment."); }
public void Invoke_IncrementWriteOnlyProperty_ThrowsInvalidOperationException() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.WriteOnlyPropertyName, null); action.TargetObject = target; AttachAction(host, trigger, action); action.Increment = true; trigger.FireStubTrigger(); }
public void Invoke_IncrementWithDuration_ThrowsInvalidOperationException() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Opacity", 0.5d); action.Increment = true; action.Duration = new System.Windows.Duration(TimeSpan.FromSeconds(1)); AttachAction(host, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_AnimateChangeOnNonDependencyProperty_ThrowsInvalidOperationException() { Button button = CreateButton(); ChangePropertyActionTargetStub stubTarget = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.DoublePropertyName, 10); AttachAction(button, trigger, action); action.Duration = TimeSpan.FromMilliseconds(10); action.TargetObject = stubTarget; trigger.FireStubTrigger(); }
// todo: might already have this one public void Invoke_ValueIsChanged_NewValueIsSet() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, 10.0d); action.TargetObject = target; AttachAction(host, trigger, action); action.Value = host; trigger.FireStubTrigger(); Assert.AreEqual(target.ObjectProperty, host, "target.DoubleProperty should be host after Invoke"); }
// todo: might already have this one public void Invoke_PropertyIsChanged_OldPropertyIsNotSet() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, 10.0d); action.TargetObject = target; AttachAction(host, trigger, action); action.PropertyName = "DoubleProperty"; trigger.FireStubTrigger(); Assert.IsNull(target.ObjectProperty, "target.DoubleProperty should be null after Invoke"); }
public void Invoke_TargetObjectReferenceTypeProperty_SetsProperty() { Button value = CreateButton(); Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, value); action.TargetObject = target; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(target.ObjectProperty, value, "target.ObjectProperty should point to the Button after Invoke"); }
public void Invoke_TargetObjectValueTypeProperty_SetsProperty() { double value = 10.0d; Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.DoublePropertyName, value); action.TargetObject = target; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(target.DoubleProperty, value, "target.DoubleProperty should be 10 after Invoke"); }
public void Invoke_ChangeValueFromGreenToYellow_ChangesToAppropriateValue() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Fill", Brushes.Green); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); action.Value = Brushes.Yellow; trigger.FireStubTrigger(); Assert.AreEqual(rectangle.Fill, Brushes.Yellow, "rectangle.Fill == Yellow"); }
public void Invoke_ChangePropertyFromFillToStroke_ChangesAppropriateProperty() { Rectangle rectangle = CreateRectangle(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction("Fill", Brushes.Green); AttachAction(rectangle, trigger, action); trigger.FireStubTrigger(); action.PropertyName = "Stroke"; trigger.FireStubTrigger(); Assert.AreEqual(rectangle.Stroke, Brushes.Green, "rectangle.Stroke == Green"); }
public void Invoke_TargetObjectValueConflictingTypeProperty_AssignBoolToString() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.StringPropertyName, true); AttachAction(host, trigger, action); action.TargetObject = target; trigger.FireStubTrigger(); Assert.AreEqual(target.StringProperty, "True", "StringProperty should have been assigned True as a string"); }
public void Invoke_IncrementWithAmbiguousAdditionOverride_ThrowsArgumentException() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, "#FF00FF00"); target.ObjectProperty = CreateAdditiveObject(); action.TargetObject = target; action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); }
public void Invoke_IncrementDoubleProperty_IncrementsProperty() { ChangePropertyActionTargetStub target = CreateTargetStub(); Button host = CreateButton(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.DoublePropertyName, 10.5d); target.DoubleProperty = 10.0d; action.TargetObject = target; action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(target.DoubleProperty, 20.5d, "DoubleProperty should have been incremented by 10.5 to a total of 20.5"); }
public void Invoke_IncrementByNull_SetsNullInstead() { ChangePropertyActionTargetStub target = CreateTargetStub(); Button host = CreateButton(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, null); AttachAction(host, trigger, action); action.TargetObject = target; action.Increment = true; target.ObjectProperty = "not null"; trigger.FireStubTrigger(); Assert.IsNull(target.ObjectProperty, "Target.ObjectProperty should have been set to null, ignoring the increment."); }
public void Invoke_IncrementStringProperty_AppendsStringValue() { ChangePropertyActionTargetStub target = CreateTargetStub(); Button host = CreateButton(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.StringPropertyName, " World!"); target.StringProperty = "Hello"; action.TargetObject = target; action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(target.StringProperty, "Hello World!", "StringProperty should have been appended with 'World!', resulting in 'Hello World!'"); }
public void Invoke_IncrementWithMultipleAdditionOverrides_CallsCorrectOverride() { Button host = CreateButton(); ChangePropertyActionTargetStub target = CreateTargetStub(); StubTrigger trigger = CreateStubTrigger(); ChangePropertyAction action = CreateChangePropertyAction(ChangePropertyActionTargetStub.ObjectPropertyName, 0.5d); target.ObjectProperty = CreateAdditiveObject(); action.TargetObject = target; action.Increment = true; AttachAction(host, trigger, action); trigger.FireStubTrigger(); Assert.AreEqual(((AdditiveObjectStub)target.ObjectProperty).AddType, "double", "Double addition override should have been called."); }