Exemplo n.º 1
0
        public void Raise_OwnEvent_HandledBySecond_NoFurtherCallbackExecuted()
        {
            string lastHandler = string.Empty;
            int    numberOfHandlersExecuted = 0;

            _chained += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                lastHandler = "one";
            };
            _chained += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                lastHandler = "two";
                e.Handled   = true;
            };
            _chained += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                lastHandler = "three";
            };

            var args = new ChainedEventArgs();

            bool result = _chained.Raise(this, args);

            Assert.That(result, Is.True);
            Assert.That(args.Handled, Is.True);
            Assert.That(numberOfHandlersExecuted, Is.EqualTo(2));
            Assert.That(lastHandler, Is.EqualTo("two"));
        }
Exemplo n.º 2
0
        public void Raise_EmptyRegistratinList_NoHandling()
        {
            var  subject = new EventChainSubject();
            var  args    = new ChainedEventArgs();
            bool result  = subject.OnChainedEvent(args);

            Assert.That(result, Is.False);
            Assert.That(args.Handled, Is.False);
        }
        public void Explore()
        {
            IValueEventArgs <int> value = new ValueEventArgs <int>(1);

            value = Args.Value(1);

            var multi = new MultiEventArgs <int, string>(1, "1");

            multi = Args.Value(1, "1");

            IMutableValueEventArgs <decimal> mutable = new MutableValueEventArgs <decimal> {
                Value = 1m
            };

            mutable = Args.Mutable(1m);

            var changed = new PropertyValueChangedEventArgs <int>("prop", 2, 3);

            changed = Args.Changed("prop", 2, 3);

            var indexed = new ValueIndexChangedEventArgs <string>(2, "old", "new");

            indexed = Args.Changed(2, "old", "new");

            var changing = new PropertyValueChangingEventArgs <int>("prop", 2, 3);

            changing = Args.Changing("prop", 2, 3);

            var indexing = new ValueIndexChangingEventArgs <string>(2, "old", "new");

            indexing = Args.Changing(2, "old", "new");

            ICancelEventArgs cancel = new ValueIndexCancelEventArgs <string>(2, "value");

            cancel = Args.Cancel(2, "value");

            IIndexEventArgs index = new ValueIndexEventArgs <string>(2, "value");

            index = Args.Index(2, "value");

            IChainedEventArgs chained = new ChainedEventArgs();

            chained = Args.Chained();
        }
Exemplo n.º 4
0
        public void Raise_ExternalClassEvent_HandledBySecond_NoFurtherCallbackExecuted()
        {
            int numberOfHandlersExecuted = 0;

            var subject = new EventChainSubject();

            subject.Event += (sender, e) => numberOfHandlersExecuted++;
            subject.Event += (sender, e) =>
            {
                numberOfHandlersExecuted++;
                e.Handled = true;
            };
            subject.Event += (sender, e) => numberOfHandlersExecuted++;

            var  args   = new ChainedEventArgs();
            bool result = subject.OnChainedEvent(args);

            Assert.That(result, Is.True);
            Assert.That(args.Handled, Is.True);
            Assert.That(numberOfHandlersExecuted, Is.EqualTo(2));
        }
Exemplo n.º 5
0
 internal bool OnChainedEvent(ChainedEventArgs args)
 {
     return(Event.Raise(this, args));
 }