Пример #1
0
        public void FilteredEventHandlerUsingCombinedFilter_TransformsEventsLocally()
        {
            // prepare event handler
            var handledValue = default(SampleEventArgs);
            var handler      = new EventHandler <SampleEventArgs>((sender, args) => handledValue = args);

            // attach client-side event filter
            var sample = new SampleServer();

            sample.SampleEvent += handler
                                  .AddFilter(new SampleEventFilter(321, 123, 111))
                                  .AddFilter(new SampleEventFilter(333, 123, 222)); // 123 will pass both filters

            // raise events, check results
            sample.RaiseSampleEvent(321);             // filtered out
            Assert.IsNull(handledValue);

            sample.RaiseSampleEvent(123);
            Assert.IsNotNull(handledValue);
            Assert.AreEqual(123, handledValue.Value);
            Assert.IsTrue(handledValue.IsTransformed);

            handledValue.Value = 111;
            sample.RaiseSampleEvent(456);             // filtered out
            Assert.AreEqual(111, handledValue.Value);
        }
Пример #2
0
        public void FilteredEventHandlerUsingFactorySyntax_FiltersEventsLocally()
        {
            // prepare event handler, attach event filter
            var handledValue = 0;
            var sample       = new SampleServer();

            sample.SampleEvent += FilteredEventHandler.Create((object sender, SampleEventArgs args) => handledValue = args.Value, new SampleEventFilter(321));

            // raise events, check results
            sample.RaiseSampleEvent(123);             // filtered out
            Assert.AreEqual(0, handledValue);

            sample.RaiseSampleEvent(321);
            Assert.AreEqual(321, handledValue);

            handledValue = 111;
            sample.RaiseSampleEvent(456);             // filtered out
            Assert.AreEqual(111, handledValue);
        }
Пример #3
0
        public void FilteredEventHandlerUsingFlexibleFilter_FiltersEventsLocally()
        {
            // prepare event handler
            var handledValue = 0;
            var handler      = new EventHandler <SampleEventArgs>((sender, args) => handledValue = args.Value);

            // attach client-side event filter
            var sample = new SampleServer();

            sample.SampleEvent += handler.AddFilter((f, args) => args.Value == 123);

            // raise events, check results
            sample.RaiseSampleEvent(321);             // filtered out
            Assert.AreEqual(0, handledValue);

            sample.RaiseSampleEvent(123);
            Assert.AreEqual(123, handledValue);

            handledValue = 111;
            sample.RaiseSampleEvent(456);             // filtered out
            Assert.AreEqual(111, handledValue);
        }