public void AddForwardOnChangeMultipleTimes() { // setup var events = new BindableEvents(new Bindable <int>()); var bindableToForwardFrom = new Bindable <string>(); // add twice events.ForwardOnChange(bindableToForwardFrom); events.ForwardOnChange(bindableToForwardFrom); var forwarded = (Dictionary <IBindable, BindableCallback>)UnitTestUtil.GetProtected(events, "ForwardedBindables"); Assert.IsTrue(forwarded.ContainsKey((IBindable)bindableToForwardFrom), "The forwareded bnindable should be known."); Assert.AreEqual(1, forwarded.Count, "There should only be one forward listener."); }
public void ForwardOnChangeTest() { // setup var events = new BindableEvents(new Bindable <int>()); var bindableToForwardFrom = new Bindable <string>(); bindableToForwardFrom.Set("test"); // register forward events.ForwardOnChange(bindableToForwardFrom); var counter = 0; events.Add((c, o) => { counter++; }); // dispatch bindableToForwardFrom.Dispatch(); Assert.AreEqual(1, counter, "The event should be forwarded once."); // remove the listener and dispatch again events.RemoveForwardedOnChange(bindableToForwardFrom); bindableToForwardFrom.Dispatch(); Assert.AreEqual(1, counter, "The event should not be forwarded again."); }