コード例 #1
0
        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.");
        }
コード例 #2
0
        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.");
        }