public void ShouldPassParametersCorrectly() { IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg1 => { return; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)(arg => true) }; var mockDispatcher = new MockDispatcher(); DispatcherEventSubscription<object> eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, mockDispatcher); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); Assert.AreSame(argument1, mockDispatcher.InvokeArg); }
public void ShouldPassParametersCorrectly() { IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(arg1 => { return; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>)(arg => true) }; var mockSyncContext = new MockSynchronizationContext(); DispatcherEventSubscription <object> eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, mockSyncContext); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); Assert.AreSame(argument1, mockSyncContext.InvokeArg); }
public void ShouldPassParametersCorrectly() { IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg1 => { return; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)(arg => true) }; var mockSyncContext = new MockSynchronizationContext(); DispatcherEventSubscription<object> eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, mockSyncContext, null, EventCommunicatorsRelationship.All); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.NotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); Assert.Same(argument1, mockSyncContext.InvokeArg); }
public void ShouldPassParametersCorrectly() { Microsoft.Practices.Prism.PubSubEvents.IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(arg1 => { return; }) }; Microsoft.Practices.Prism.PubSubEvents.IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>)(arg => true) }; var mockDispatcher = new MockDispatcher(); DispatcherEventSubscription <object> eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, mockDispatcher); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); Assert.AreSame(argument1, mockDispatcher.InvokeArg); }
public void ShouldReceiveDelegateOnDifferentThread() { int threadId = -1; int calledThreadId = -1; ManualResetEvent setupEvent = new ManualResetEvent(false); bool completed = false; DispatcherEventSubscription <object> eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(arg => { calledThreadId = Thread.CurrentThread.ManagedThreadId; completed = true; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>)(arg => true) }; Thread mockUIThread = new Thread(delegate() { threadId = Thread.CurrentThread.ManagedThreadId; //eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, Dispatcher.CurrentDispatcher); eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, Application.Current.RootVisual.Dispatcher); setupEvent.Set(); while (!completed) { WPFThreadHelper.DoEvents(); } } ); mockUIThread.Start(); //setupEvent.WaitOne(5000, false); setupEvent.WaitOne(5000); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); executionStrategy.Invoke(new object[0]); bool joined = mockUIThread.Join(5000); completed = true; Assert.IsTrue(joined); Assert.AreEqual(threadId, calledThreadId); }
public void ShouldReceiveDelegateOnDifferentThread() { int threadId = -1; int calledThreadId = -1; ManualResetEvent setupEvent = new ManualResetEvent(false); bool completed = false; DispatcherEventSubscription<object> eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg => { calledThreadId = Thread.CurrentThread.ManagedThreadId; completed = true; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)(arg => true) }; Thread mockUIThread = new Thread(delegate() { threadId = Thread.CurrentThread.ManagedThreadId; //eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, Dispatcher.CurrentDispatcher); eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, Application.Current.RootVisual.Dispatcher); setupEvent.Set(); while (!completed) { WPFThreadHelper.DoEvents(); } } ); mockUIThread.Start(); //setupEvent.WaitOne(5000, false); setupEvent.WaitOne(5000); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); executionStrategy.Invoke(new object[0]); bool joined = mockUIThread.Join(5000); completed = true; Assert.IsTrue(joined); Assert.AreEqual(threadId, calledThreadId); }
public void ShouldCallInvokeOnDispatcherNonGeneric() { DispatcherEventSubscription eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action)(() => { }) }; var mockSyncContext = new MockSynchronizationContext(); eventSubscription = new DispatcherEventSubscription(actionDelegateReference, mockSyncContext); eventSubscription.GetExecutionStrategy().Invoke(new object[0]); Assert.True(mockSyncContext.InvokeCalled); }
public void ShouldCallInvokeOnDispatcher() { DispatcherEventSubscription <object> eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(_ => { }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>)(arg => true) }; var mockSyncContext = new MockSynchronizationContext(); eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, mockSyncContext); eventSubscription.GetExecutionStrategy().Invoke(new object[0]); Assert.True(mockSyncContext.InvokeCalled); }
public void ShouldCallInvokeOnDispatcher() { DispatcherEventSubscription<object> eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg => { return; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)(arg => true) }; var mockDispatcher = new MockDispatcher(); eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, mockDispatcher); eventSubscription.GetExecutionStrategy().Invoke(new object[0]); Assert.IsTrue(mockDispatcher.InvokeCalled); }
public void ShouldCallInvokeOnDispatcher() { DispatcherEventSubscription<object> eventSubscription = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg => { return; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)(arg => true) }; var mockSyncContext = new MockSynchronizationContext(); eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, mockSyncContext, null, EventCommunicatorsRelationship.All); eventSubscription.GetExecutionStrategy().Invoke(new object[0]); Assert.True(mockSyncContext.InvokeCalled); }
public void ShouldCallInvokeOnDispatcher() { DispatcherEventSubscription <object> eventSubscription = null; Microsoft.Practices.Prism.PubSubEvents.IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(arg => { return; }) }; Microsoft.Practices.Prism.PubSubEvents.IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>)(arg => true) }; var mockDispatcher = new MockDispatcher(); eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, mockDispatcher); eventSubscription.GetExecutionStrategy().Invoke(new object[0]); Assert.IsTrue(mockDispatcher.InvokeCalled); }
public void ShouldPassParametersCorrectly() { int threadId = -1; int calledThreadId = -1; ManualResetEvent setupEvent = new ManualResetEvent(false); bool completed = false; object receivedArgument1 = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action <object>)(arg1 => { calledThreadId = Thread . CurrentThread . ManagedThreadId; receivedArgument1 = arg1; completed = true; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate <object>) delegate { return(true); } }; DispatcherEventSubscription <object> eventSubscription = null; Thread mockUIThread = new Thread(delegate() { threadId = Thread.CurrentThread.ManagedThreadId; eventSubscription = new DispatcherEventSubscription <object>(actionDelegateReference, filterDelegateReference, Dispatcher.CurrentDispatcher); setupEvent.Set(); while (!completed) { WPFThreadHelper.DoEvents(); } } ); mockUIThread.Start(); setupEvent.WaitOne(5000, false); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); bool joined = mockUIThread.Join(5000); completed = true; Assert.IsTrue(joined); Assert.AreEqual(threadId, calledThreadId); Assert.AreSame(argument1, receivedArgument1); }
public void ShouldPassParametersCorrectly() { int threadId = -1; int calledThreadId = -1; ManualResetEvent setupEvent = new ManualResetEvent(false); bool completed = false; object receivedArgument1 = null; IDelegateReference actionDelegateReference = new MockDelegateReference() { Target = (Action<object>)(arg1 => { calledThreadId = Thread . CurrentThread . ManagedThreadId; receivedArgument1 = arg1; completed = true; }) }; IDelegateReference filterDelegateReference = new MockDelegateReference { Target = (Predicate<object>)delegate { return true; } }; DispatcherEventSubscription<object> eventSubscription = null; Thread mockUIThread = new Thread(delegate() { threadId = Thread.CurrentThread.ManagedThreadId; eventSubscription = new DispatcherEventSubscription<object>(actionDelegateReference, filterDelegateReference, Dispatcher.CurrentDispatcher); setupEvent.Set(); while (!completed) { WPFThreadHelper.DoEvents(); } } ); mockUIThread.Start(); setupEvent.WaitOne(5000, false); var executionStrategy = eventSubscription.GetExecutionStrategy(); Assert.IsNotNull(executionStrategy); object argument1 = new object(); executionStrategy.Invoke(new[] { argument1 }); bool joined = mockUIThread.Join(5000); completed = true; Assert.IsTrue(joined); Assert.AreEqual(threadId, calledThreadId); Assert.AreSame(argument1, receivedArgument1); }