public void SecondServiceLocatorResolves() { var bus = new Bus(); #region composition root var catalog = new AggregateCatalog(); catalog.Catalogs.Add(new AssemblyCatalog(typeof(Message2Consumer).GetTypeInfo().Assembly)); var compositionContainer = new CompositionContainer(catalog); var message2Consumer = new Message2Consumer(); ServiceLocator.SetLocatorProvider(() => new MefServiceLocator(compositionContainer)); #endregion bus.SetServiceLocator(new MefServiceLocator(compositionContainer)); compositionContainer.ComposeExportedValue(message2Consumer); #if SUPPORT_ASYNC_CONSUMER var message3AsyncConsumer = new Message3AsyncConsumer(); compositionContainer.ComposeExportedValue(message3AsyncConsumer); #endif compositionContainer.ComposeExportedValue(new Pipe()); compositionContainer.ComposeExportedValue(new Pipe23()); bus.SetServiceLocator(new MefServiceLocator(compositionContainer)); var directory = Path.GetDirectoryName(new Uri(GetType().GetTypeInfo().Assembly.CodeBase).LocalPath); bus.AddHandlersAndTranslators(directory, "Tests*.dll", "Tests.Mocks"); bus.Handle(new Message2()); Assert.Equal(1, message2Consumer.MessageReceivedCount); }
public async Task ManuallyComposedAsyncTypeAsynchronouslyHandlesMessageProperly() { var message3 = new Message3 { CorrelationId = "1234" }; var bus = new Bus(); var message3AsyncConsumer = new Message3AsyncConsumer(); bus.AddHandler(message3AsyncConsumer); await bus.HandleAsync(message3); Assert.IsNotNull(Message3AsyncConsumer.LastMessageReceived); Assert.AreEqual(message3.CorrelationId, Message3AsyncConsumer.LastMessageReceived.CorrelationId); }
public async Task ManuallyComposedSyncAsyncTypeAsynchronouslyHandlesMessageProperly() { var message2 = new Message2 { CorrelationId = "1234" }; var bus = new Bus(); var message3AsyncConsumer = new Message3AsyncConsumer(); bus.AddHandler(message3AsyncConsumer); var pipe = new Pipe23(); bus.AddTranslator(pipe); await bus.HandleAsync(message2); Assert.AreSame(message2, Pipe23.LastMessageProcessed); Assert.IsNotNull(Message3AsyncConsumer.LastMessageReceived); Assert.AreEqual(message2.CorrelationId, Message3AsyncConsumer.LastMessageReceived.CorrelationId); }