예제 #1
0
        public void RaiseUntil_AbortableChain_NotHandled_AllCallbacksExecuted()
        {
            int numberOfHandlersExecuted = 0;

            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "1");
            };
            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "2");
            };
            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "3");
            };

            var args = new MutableValueEventArgs <string>();

            bool result = _abortable.RaiseUntil(this, args, e => e.Equals("5", StringComparison.OrdinalIgnoreCase));

            Assert.That(result, Is.False);
            Assert.That(args.Value, Is.EqualTo("3"), "value of the last callback");
            Assert.That(numberOfHandlersExecuted, Is.EqualTo(3));
        }
예제 #2
0
        public void RaiseUntil_AbortableChain_HandledWhenValueIs2_NoFurtherCallbacksExecuted()
        {
            int numberOfHandlersExecuted = 0;

            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "1");
            };
            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "2");
            };
            _abortable += (handler, e) =>
            {
                numberOfHandlersExecuted++;
                return(e.Value = "3");
            };

            var args = new MutableValueEventArgs <string>();

            bool result = _abortable.RaiseUntil(this, args, e => e.Equals("2", StringComparison.OrdinalIgnoreCase));

            Assert.That(result, Is.True);
            Assert.That(args.Value, Is.EqualTo("2"));
            Assert.That(numberOfHandlersExecuted, Is.EqualTo(2));
        }
        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();
        }