public void MessageSourceWithRealTarget_Struct() { // Prepare var dummyMessenger = new FirLibMessenger(); dummyMessenger.ConnectToGlobalMessaging( FirLibMessengerThreadingBehavior.Ignore, "DummyMessenger", null); try { var realHandlerCalled = false; dummyMessenger.Subscribe <TestMessageStruct>(_ => realHandlerCalled = true); // Execute test var messageSource = new FirLibMessageSource <TestMessageStruct>("DummyMessenger"); messageSource.Publish(new TestMessageStruct("Testing argument")); // Check results Assert.IsTrue(realHandlerCalled); } finally { // Cleanup dummyMessenger.DisconnectFromGlobalMessaging(); } }
public static FirLibApplicationLoader AttachToWpfEnvironment(this FirLibApplicationLoader loader) { var uiMessenger = new FirLibMessenger(); loader.AddLoadAction(() => { Application.Current.DispatcherUnhandledException += CurrentOnDispatcherUnhandledException; uiMessenger.CustomSynchronizationContextEqualityChecker = CheckForEqualSynchronizationContexts; uiMessenger.ConnectToGlobalMessaging( FirLibMessengerThreadingBehavior.EnsureMainSyncContextOnSyncCalls, FirLibConstants.MESSENGER_NAME_GUI, SynchronizationContext.Current); }); loader.AddUnloadAction(() => { Application.Current.DispatcherUnhandledException -= CurrentOnDispatcherUnhandledException; uiMessenger.DisconnectFromGlobalMessaging(); }); return(loader); }