public void TestLoadedEvent() { Rectangle rectangle = new Rectangle(); EventTrigger eventTrigger1 = new EventTrigger("Loaded"); EventTrigger eventTrigger2 = new EventTrigger("MouseLeftButtonDown"); StubAction loadedAction = new StubAction(); StubAction mouseDownAction = new StubAction(); eventTrigger1.Actions.Add(loadedAction); eventTrigger1.Attach(rectangle); using (StubWindow window = new StubWindow(rectangle)) { Assert.AreEqual(loadedAction.InvokeCount, 1, "Loaded action was invoked"); eventTrigger1.EventName = "GotMouseCapture"; rectangle.CaptureMouse(); Assert.AreEqual(loadedAction.InvokeCount, 2, "GotMouseCapture action was invoked"); rectangle.ReleaseMouseCapture(); eventTrigger1.EventName = "Loaded"; rectangle.CaptureMouse(); Assert.AreEqual(loadedAction.InvokeCount, 2, "GotMouseCapture action was not invoked"); rectangle.ReleaseMouseCapture(); } eventTrigger1.Detach(); Assert.IsNull(((IAttachedObject)eventTrigger1).AssociatedObject, "Trigger was detached"); }
public void EventFired_SourceObjectChangesToNull_ListensToSourceName() { EventTrigger eventTrigger = CreateEventTrigger(); Grid grid = CreateGrid(); Rectangle host = CreateNamedElement <Rectangle>("rect"); Button sourceButton = CreateNamedElement <Button>("sourcebutton"); Button sourceNameButton = CreateNamedElement <Button>("sourceNameButton"); AddChildElement(grid, host); AddChildElement(grid, sourceButton); AddChildElement(grid, sourceNameButton); using (StubWindow window = new StubWindow(grid)) { StubAction action = AttachTriggerToObject(eventTrigger, host); eventTrigger.SourceObject = sourceButton; eventTrigger.SourceName = "sourceNameButton"; eventTrigger.EventName = "Click"; eventTrigger.ClearValue(EventTriggerBase.SourceObjectProperty); System.Windows.RoutedEventArgs args = CreateClickEvent(); sourceButton.RaiseEvent(args); Assert.AreEqual(action.InvokeCount, 0, "Click on source object button should not invoke the action, as the SourceObject has been cleared."); sourceNameButton.RaiseEvent(args); Assert.AreEqual(action.InvokeCount, 1, "Click on source name button when SourceObject has been cleared should invoke the action."); } }
public void EventFired_SourceObjectAndSourceNameSet_ListensOnlyToSourceObject() { EventTrigger eventTrigger = CreateEventTrigger(); Grid grid = CreateGrid(); Rectangle host = CreateNamedElement <Rectangle>("rect"); Button sourceButton = CreateNamedElement <Button>("sourcebutton"); Button sourceNameButton = CreateNamedElement <Button>("sourceNameButton"); AddChildElement(grid, host); AddChildElement(grid, sourceButton); AddChildElement(grid, sourceNameButton); using (StubWindow window = new StubWindow(grid)) { StubAction action = AttachTriggerToObject(eventTrigger, host); eventTrigger.EventName = "Click"; eventTrigger.SourceName = "sourceNameButton"; eventTrigger.SourceObject = sourceButton; System.Windows.RoutedEventArgs args = CreateClickEvent(); sourceNameButton.RaiseEvent(args); Assert.AreEqual(action.InvokeCount, 0, "Click on source name button when SourceObject is set to another object should not invoke the action."); sourceButton.RaiseEvent(args); Assert.AreEqual(action.InvokeCount, 1, "Click on source object button should invoke the action."); } }
public TestDragToken(MouseDragElementBehavior behavior, Point startPoint) { this.behavior = behavior; this.draggedElement = (FrameworkElement)((IAttachedObject)behavior).AssociatedObject;; this.stubWindow = new StubWindow(draggedElement.Parent); GeneralTransform rootToElement = this.stubWindow.TransformToVisual(draggedElement); behavior.StartDrag(rootToElement.Transform(startPoint)); }
private void Test_SetBindingValue_ValueChanged(TriggerBase <DependencyObject> trigger, StubAction stubAction, StubDataStore dataStore) { using (StubWindow window = new StubWindow(null)) { // Change the value on the data store. dataStore.Foo = "foo"; // Force the Data binding phase DispatcherHelper.ForceDataBinding(); Assert.AreEqual(stubAction.InvokeCount, 1, "The trigger should have been invoked once."); } }
public void EventFired_EventFiredOnAssociatedObjectWhenSourceNameObjectIsDifferent_DoesNotFire() { EventTrigger eventTrigger = CreateEventTrigger(); Grid grid = CreateGrid(); Rectangle rect = CreateNamedElement <Rectangle>("rect"); Button button = CreateNamedElement <Button>("button"); AddChildElement(grid, rect); AddChildElement(grid, button); using (StubWindow window = new StubWindow(grid)) { StubAction action = AttachTriggerToObject(eventTrigger, rect); eventTrigger.SourceName = "button"; eventTrigger.EventName = "Click"; System.Windows.RoutedEventArgs args = CreateClickEvent(); rect.RaiseEvent(args); Assert.AreEqual(action.InvokeCount, 0, "Click on rect while Source=button should not invoke the action."); } }