public static IServiceCollection AddEventBus(this IServiceCollection services, string connectionString, string topicName, string subscriptionName)
 {
     services.AddSingleton <IEventBus>(sp =>
     {
         var logger   = sp.GetRequiredService <ILogger <ServiceBusEventBus> >();
         var eventBus = new ServiceBusEventBus(connectionString, topicName, logger, new InMemoryEventBusSubscriptionsManager(), sp, subscriptionName, true);
         return(eventBus);
     });
     return(services);
 }
Exemple #2
0
        /// <summary>
        /// Run listener
        /// </summary>
        private static async Task RunEventListenerAsync()
        {
            var logger = ConsoleLogger.Create();
            var bus    = new ServiceBusEventBus(new ServiceBusClientFactory(
                                                    new ServiceBusConfig(null)), logger);
            var listener = new ConsoleListener();

            using (var subscriber1 = new ApplicationEventBusSubscriber(bus, listener.YieldReturn()))
                using (var subscriber2 = new EndpointEventBusSubscriber(bus, listener.YieldReturn())) {
                    var tcs = new TaskCompletionSource <bool>();
                    AssemblyLoadContext.Default.Unloading += _ => tcs.TrySetResult(true);
                    await tcs.Task;
                }
        }
Exemple #3
0
        public async Task PublishAsyncMessageFieldsSet()
        {
            var subscriptionClient = new Mock <ISubscriptionClient>();
            var topicClient        = new Mock <ITopicClient>();
            ServiceBusOptions serviceBusOptions = new ServiceBusOptions();
            var subscriptionManager             = new Mock <ISubscriptionManager>();
            var handlerResolver = new Mock <IHandlerResolver>();
            var logger          = new Mock <ILogger <ServiceBusEventBus> >();

            topicClient.Setup(client => client.SendAsync(It.IsAny <Message>())).Callback <Message>((message) => {
                Assert.AreEqual("BasicEvent", message.Label);
                Assert.IsNotEmpty(message.MessageId);
            });

            var eventBus = new ServiceBusEventBus(subscriptionClient.Object, topicClient.Object, serviceBusOptions,
                                                  subscriptionManager.Object, handlerResolver.Object, logger.Object);

            var @event = new BasicEvent();

            await eventBus.PublishAsync(@event);

            Mock.Verify(topicClient);
        }