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); }
/// <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; } }
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); }