public void HandledEventTest() { RoutedEventTestElement root = new RoutedEventTestElement(); RoutedEventTestElement child1 = new RoutedEventTestElement(); RoutedEventTestElement child2 = new RoutedEventTestElement(); root.AddVisualChild(child1); child1.AddVisualChild(child2); int rootEventCount = 0; int rootHandledEventCount = 0; int child1EventCount = 0; int child2EventCount = 0; root.Bubble += (sender, e) => { rootEventCount++; }; child1.Bubble += (sender, e) => { child1EventCount++; e.Handled = true; }; child2.Bubble += (sender, e) => { child2EventCount++; }; root.AddHandler(RoutedEventTestElement.BubbleEvent, new RoutedEventHandler((sender, e) => { rootHandledEventCount++; }), true); child2.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child2)); Assert.AreEqual(0, rootEventCount); Assert.AreEqual(1, rootHandledEventCount); Assert.AreEqual(1, child1EventCount); Assert.AreEqual(1, child2EventCount); }
public void HandledEventTest() { RoutedEventTestElement root = new RoutedEventTestElement(); RoutedEventTestElement child1 = new RoutedEventTestElement(); RoutedEventTestElement child2 = new RoutedEventTestElement(); root.AddVisualChild(child1); child1.AddVisualChild(child2); int rootEventCount = 0; int rootHandledEventCount = 0; int child1EventCount = 0; int child2EventCount = 0; root.Bubble += (sender, e) => { rootEventCount++; }; child1.Bubble += (sender, e) => { child1EventCount++; e.Handled = true; }; child2.Bubble += (sender, e) => { child2EventCount++; }; root.AddHandler(RoutedEventTestElement.BubbleEvent, new RoutedEventHandler((sender, e) => { rootHandledEventCount++; }), true); child2.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child2)); Assert.AreEqual(0, rootEventCount); Assert.AreEqual(1, rootHandledEventCount); Assert.AreEqual(1, child1EventCount); Assert.AreEqual(1, child2EventCount); }
public void RoutingStrategyTest() { RoutedEventTestElement root = new RoutedEventTestElement(); RoutedEventTestElement child1 = new RoutedEventTestElement(); RoutedEventTestElement child2 = new RoutedEventTestElement(); root.AddVisualChild(child1); child1.AddVisualChild(child2); int rootLastEvent = 0; int child1LastEvent = 0; int child2LastEvent = 0; int currentEvent = 0; root.Direct += (sender, e) => { rootLastEvent = ++currentEvent; }; root.Bubble += (sender, e) => { rootLastEvent = ++currentEvent; }; root.Tunnel += (sender, e) => { rootLastEvent = ++currentEvent; }; child1.Direct += (sender, e) => { child1LastEvent = ++currentEvent; }; child1.Bubble += (sender, e) => { child1LastEvent = ++currentEvent; }; child1.Tunnel += (sender, e) => { child1LastEvent = ++currentEvent; }; child2.Direct += (sender, e) => { child2LastEvent = ++currentEvent; }; child2.Bubble += (sender, e) => { child2LastEvent = ++currentEvent; }; child2.Tunnel += (sender, e) => { child2LastEvent = ++currentEvent; }; child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.DirectEvent, child1)); Assert.AreEqual(0, rootLastEvent); Assert.AreEqual(1, child1LastEvent); Assert.AreEqual(0, child2LastEvent); child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child1)); Assert.AreEqual(3, rootLastEvent); Assert.AreEqual(2, child1LastEvent); Assert.AreEqual(0, child2LastEvent); child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.TunnelEvent, child1)); Assert.AreEqual(4, rootLastEvent); Assert.AreEqual(5, child1LastEvent); Assert.AreEqual(0, child2LastEvent); }
public void RoutingStrategyTest() { RoutedEventTestElement root = new RoutedEventTestElement(); RoutedEventTestElement child1 = new RoutedEventTestElement(); RoutedEventTestElement child2 = new RoutedEventTestElement(); root.AddVisualChild(child1); child1.AddVisualChild(child2); int rootLastEvent = 0; int child1LastEvent = 0; int child2LastEvent = 0; int currentEvent = 0; root.Direct += (sender, e) => { rootLastEvent = ++currentEvent; }; root.Bubble += (sender, e) => { rootLastEvent = ++currentEvent; }; root.Tunnel += (sender, e) => { rootLastEvent = ++currentEvent; }; child1.Direct += (sender, e) => { child1LastEvent = ++currentEvent; }; child1.Bubble += (sender, e) => { child1LastEvent = ++currentEvent; }; child1.Tunnel += (sender, e) => { child1LastEvent = ++currentEvent; }; child2.Direct += (sender, e) => { child2LastEvent = ++currentEvent; }; child2.Bubble += (sender, e) => { child2LastEvent = ++currentEvent; }; child2.Tunnel += (sender, e) => { child2LastEvent = ++currentEvent; }; child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.DirectEvent, child1)); Assert.AreEqual(0, rootLastEvent); Assert.AreEqual(1, child1LastEvent); Assert.AreEqual(0, child2LastEvent); child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child1)); Assert.AreEqual(3, rootLastEvent); Assert.AreEqual(2, child1LastEvent); Assert.AreEqual(0, child2LastEvent); child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.TunnelEvent, child1)); Assert.AreEqual(4, rootLastEvent); Assert.AreEqual(5, child1LastEvent); Assert.AreEqual(0, child2LastEvent); }