Пример #1
0
        public void begin_raise_invokes_event_handler()
        {
            var waitHandle = new ManualResetEventSlim(false);

            EventHelper.BeginRaise((EventHandler)((s, e) => waitHandle.Set()), this, null, null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
        }
Пример #2
0
        public void begin_raise_generic_with_lazy_event_args_creation_invokes_event_handler()
        {
            var waitHandle = new ManualResetEventSlim(false);

            EventHelper.BeginRaise((s, e) => waitHandle.Set(), this, () => EventArgs.Empty, null, null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
        }
Пример #3
0
        public void begin_raise_delegate_works_with_any_event_args_type()
        {
            var waitHandle = new ManualResetEventSlim(false);

            EventHelper.BeginRaise((Action <object, CancelEventArgs>)((s, e) => waitHandle.Set()), this, new CancelEventArgs(), null, null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
        }
Пример #4
0
        public void begin_raise_delegate_throws_if_delegate_does_not_take_correct_type_of_arguments()
        {
            var ex = Assert.Throws <InvalidOperationException>(() => EventHelper.BeginRaise((Action <bool>)(b => { }), this, EventArgs.Empty, null, null));

            Assert.Equal("The supplied delegate does not have the correct signature. The delegate must take two parameters, the first an object and the second an EventArgs instance.", ex.Message);

            ex = Assert.Throws <InvalidOperationException>(() => EventHelper.BeginRaise((Action <object, bool>)((o, b) => { }), this, EventArgs.Empty, null, null));
            Assert.Equal("The supplied delegate does not have the correct signature. The delegate must take two parameters, the first an object and the second an EventArgs instance.", ex.Message);
        }
Пример #5
0
        public void begin_raise_generic_with_lazy_event_args_does_not_invoke_creation_delegate_if_there_is_no_handler()
        {
            var called = false;

            EventHelper.BeginRaise(
                null,
                this,
                () =>
            {
                called = true;
                return(EventArgs.Empty);
            },
                null,
                null);

            Assert.False(called);
        }
Пример #6
0
        public void begin_raise_generic_with_lazy_event_args_creation_invokes_all_event_handlers_in_multicast_delegate()
        {
            var waitHandle1 = new ManualResetEventSlim(false);
            var waitHandle2 = new ManualResetEventSlim(false);
            var waitHandle3 = new ManualResetEventSlim(false);

            var handler = (EventHandler <EventArgs>)((s, e) => waitHandle1.Set());

            handler += (s, e) => waitHandle2.Set();
            handler += (s, e) => waitHandle3.Set();

            EventHelper.BeginRaise(handler, this, () => EventArgs.Empty, null, null);

            Assert.True(waitHandle1.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(waitHandle2.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(waitHandle3.Wait(TimeSpan.FromSeconds(1)));
        }
Пример #7
0
        public void begin_raise_invokes_all_event_handlers_in_multicast_delegate()
        {
            var waitHandle1 = new ManualResetEventSlim(false);
            var waitHandle2 = new ManualResetEventSlim(false);
            var waitHandle3 = new ManualResetEventSlim(false);

            var handler = (EventHandler)((s, e) => waitHandle1.Set());

            handler += (s, e) => waitHandle2.Set();
            handler += (s, e) => waitHandle3.Set();

            EventHelper.BeginRaise(handler, this, null, null);

            Assert.True(waitHandle1.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(waitHandle2.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(waitHandle3.Wait(TimeSpan.FromSeconds(1)));
        }
Пример #8
0
        public void begin_raise_generic_with_lazy_event_args_creation_invokes_event_handler_on_different_thread()
        {
            var waitHandle = new ManualResetEventSlim(false);
            var threadId   = -1;

            EventHelper.BeginRaise((s, e) =>
            {
                threadId = Thread.CurrentThread.ManagedThreadId;
                waitHandle.Set();
            },
                                   this,
                                   () => EventArgs.Empty,
                                   null,
                                   null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotEqual(Thread.CurrentThread.ManagedThreadId, threadId);
        }
Пример #9
0
        public void begin_raise_passes_through_empty_event_args_by_default()
        {
            var    waitHandle = new ManualResetEventSlim(false);
            object eventArgs  = null;

            EventHelper.BeginRaise(
                (EventHandler)((s, e) =>
            {
                eventArgs = e;
                waitHandle.Set();
            }),
                this,
                null,
                null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(eventArgs);
            Assert.Same(EventArgs.Empty, eventArgs);
        }
Пример #10
0
        public void begin_raise_passes_through_sender()
        {
            var    waitHandle = new ManualResetEventSlim(false);
            object sender     = null;

            EventHelper.BeginRaise(
                (EventHandler)((s, e) =>
            {
                sender = s;
                waitHandle.Set();
            }),
                this,
                null,
                null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(sender);
            Assert.Same(this, sender);
        }
Пример #11
0
        public void begin_raise_invokes_callback_after_handler_has_been_called()
        {
            var handlerCalled    = new ManualResetEventSlim(false);
            var callbackCalled   = new ManualResetEventSlim(false);
            var wasHandlerCalled = false;

            EventHelper.BeginRaise(
                (EventHandler)((s, e) => handlerCalled.Set()),
                this,
                _ =>
            {
                wasHandlerCalled = handlerCalled.IsSet;
                callbackCalled.Set();
            },
                null);

            Assert.True(callbackCalled.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(wasHandlerCalled);
        }
Пример #12
0
        public void begin_raise_generic_with_lazy_event_args_creation_invokes_callback_after_handler_has_been_called()
        {
            var handlerCalled    = new ManualResetEventSlim(false);
            var callbackCalled   = new ManualResetEventSlim(false);
            var wasHandlerCalled = false;

            EventHelper.BeginRaise(
                (s, e) => handlerCalled.Set(),
                this,
                () => EventArgs.Empty,
                _ =>
            {
                wasHandlerCalled = handlerCalled.IsSet;
                callbackCalled.Set();
            },
                null);

            Assert.True(callbackCalled.Wait(TimeSpan.FromSeconds(1)));
            Assert.True(wasHandlerCalled);
        }
Пример #13
0
        public void begin_raise_passes_through_async_state_to_callback()
        {
            var    waitHandle         = new ManualResetEventSlim(false);
            var    asyncState         = new object();
            object receivedAsyncState = null;

            EventHelper.BeginRaise(
                (EventHandler)((s, e) => { }),
                this,
                ar =>
            {
                receivedAsyncState = ar.AsyncState;
                waitHandle.Set();
            },
                asyncState);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(receivedAsyncState);
            Assert.Same(asyncState, receivedAsyncState);
        }
Пример #14
0
        public void begin_raise_generic_with_lazy_event_args_creation_passes_through_sender()
        {
            var    waitHandle = new ManualResetEventSlim(false);
            object sender     = null;

            EventHelper.BeginRaise(
                (s, e) =>
            {
                sender = s;
                waitHandle.Set();
            },
                this,
                () => EventArgs.Empty,
                null,
                null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(sender);
            Assert.Same(this, sender);
        }
Пример #15
0
        public void begin_raise_generic_with_lazy_event_args_creation_passes_through_event_args()
        {
            var       waitHandle        = new ManualResetEventSlim(false);
            var       eventArgs         = new EventArgs();
            EventArgs receivedEventArgs = null;

            EventHelper.BeginRaise(
                (s, e) =>
            {
                receivedEventArgs = e;
                waitHandle.Set();
            },
                this,
                () => eventArgs,
                null,
                null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(receivedEventArgs);
            Assert.Same(eventArgs, receivedEventArgs);
        }
Пример #16
0
        public void begin_raise_delegate_passes_through_event_args()
        {
            var    waitHandle        = new ManualResetEventSlim(false);
            var    eventArgs         = new EventArgs();
            object receivedEventArgs = null;

            EventHelper.BeginRaise(
                (PseudoEventHandler)((s, e) =>
            {
                receivedEventArgs = e;
                waitHandle.Set();
            }),
                this,
                eventArgs,
                null,
                null);

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(1)));
            Assert.NotNull(receivedEventArgs);
            Assert.Same(eventArgs, receivedEventArgs);
        }
Пример #17
0
 public void begin_raise_generic_does_not_throw_if_callback_is_null()
 {
     EventHelper.BeginRaise((s, e) => { }, null, EventArgs.Empty, null, new object());
 }
Пример #18
0
 public void begin_raise_generic_does_not_throw_if_event_handler_is_null()
 {
     EventHelper.BeginRaise(null, this, EventArgs.Empty, _ => { }, new object());
 }
Пример #19
0
 public void begin_raise_does_not_throw_if_async_state_is_null()
 {
     EventHelper.BeginRaise((EventHandler)((s, e) => { }), null, _ => { }, null);
 }
Пример #20
0
 public void begin_raise_generic_does_not_throw_if_event_args_is_null()
 {
     EventHelper.BeginRaise((s, e) => { }, null, (EventArgs)null, _ => { }, new object());
 }
Пример #21
0
 public static void BeginRaise(this EventHandler handler, object sender, AsyncCallback callback, object asyncState)
 {
     EventHelper.BeginRaise(handler, sender, callback, asyncState);
 }
Пример #22
0
 public static void BeginRaise <T>(this EventHandler <T> handler, object sender, T e, AsyncCallback callback, object asyncState) where T : EventArgs
 {
     EventHelper.BeginRaise(handler, sender, e, callback, asyncState);
 }
Пример #23
0
 public void begin_raise_generic_with_lazy_event_args_creation_does_not_throw_if_async_state_is_null()
 {
     EventHelper.BeginRaise((s, e) => { }, this, () => EventArgs.Empty, _ => { }, null);
 }
Пример #24
0
 public void begin_raise_generic_with_lazy_event_args_creation_does_not_throw_if_callback_is_null()
 {
     EventHelper.BeginRaise((s, e) => { }, this, () => EventArgs.Empty, null, new object());
 }
Пример #25
0
 internal static void BeginRaise <T>(this EventHandler <T> handler, object sender, Kent.Boogaart.HelperTrinity.EventHelper.CreateEventArguments <T> createEventArguments, AsyncCallback callback, object asyncState)
     where T : EventArgs
 {
     EventHelper.BeginRaise(handler, sender, createEventArguments, callback, asyncState);
 }
Пример #26
0
 public void begin_raise_generic_does_not_throw_if_async_state_is_null()
 {
     EventHelper.BeginRaise((s, e) => { }, null, EventArgs.Empty, _ => { }, null);
 }
Пример #27
0
 public static void BeginRaise(this Delegate handler, object sender, EventArgs e, AsyncCallback callback, object asyncState)
 {
     EventHelper.BeginRaise(handler, sender, e, callback, asyncState);
 }
Пример #28
0
 public void begin_raise_generic_with_lazy_event_args_creation_does_not_throw_if_event_handler_is_null()
 {
     EventHelper.BeginRaise(null, this, () => EventArgs.Empty, _ => { }, new object());
 }
Пример #29
0
 public static void BeginRaise <T>(this EventHandler <T> handler, object sender, EventHelper.CreateEventArguments <T> createEventArguments, AsyncCallback callback, object asyncState) where T : EventArgs
 {
     EventHelper.BeginRaise(handler, sender, createEventArguments, callback, asyncState);
 }
Пример #30
0
 public void begin_raise_generic_with_lazy_event_args_creation_throws_if_creation_delegate_is_null()
 {
     Assert.Throws <ArgumentNullException>(() => EventHelper.BeginRaise <EventArgs>((s, e) => { }, this, (Func <EventArgs>)null, _ => { }, new object()));
 }