public async Task PublishesEvent() { var subscription = nameof(PublishesEvent); await CreateEndToEndTestSubscriptionsAsync(subscription); var services = new ServiceCollection(); services.AddHostedService <MessageBusHostedService>() .AddSingleton <IMessageTracker, MessageTracker>() .AddSingleton <IPublishingService, PublishingService>() .AddMessageBus(new AzureServiceBusClientBuilder(Configuration["Hostname"], Configuration["Topic"], subscription, Configuration["TenantId"])); _serviceProvider = services.BuildServiceProvider(); var aircraftTakenOffEvent = new AircraftTakenOff { AircraftId = Guid.NewGuid().ToString() }; await _serviceProvider.GetRequiredService <IPublishingService>().PublishAsync(aircraftTakenOffEvent); Assert.Single(await ReceiveMessagesForSubscriptionAsync($"{subscription}-Output"), m => m.Subject == nameof(AircraftTakenOff) && m.Body.ToObjectFromJson <AircraftTakenOff>().AircraftId == aircraftTakenOffEvent.AircraftId); }
public async Task PublishesEventWithScheduledEnqueueTime() { var subscription = nameof(PublishesEventWithScheduledEnqueueTime); await CreateEndToEndTestSubscriptionsAsync(subscription); var services = new ServiceCollection(); services.AddHostedService <MessageBusHostedService>() .AddSingleton <IMessageTracker, MessageTracker>() .AddSingleton <IPublishingService, PublishingServiceWithDelay>() .AddMessageBus(new AzureServiceBusClientBuilder(Configuration["Hostname"], Configuration["Topic"], subscription, Configuration["TenantId"])); _serviceProvider = services.BuildServiceProvider(); var aircraftTakenOffEvent = new AircraftTakenOff { AircraftId = Guid.NewGuid().ToString() }; await _serviceProvider.GetRequiredService <IPublishingService>().PublishAsync(aircraftTakenOffEvent); Assert.Empty(await FindAircraftTakenOffEventsAsync(subscription, aircraftTakenOffEvent)); await Task.Delay(TimeSpan.FromSeconds(11)); Assert.Single(await FindAircraftTakenOffEventsAsync(subscription, aircraftTakenOffEvent)); }