public async Task MessageTypes_AreCreated_OrAltered() { // Arrange await InitializeDatabaseAsync(); await connection.ExecuteAsync("ALTER MESSAGE TYPE [TestMessageType] VALIDATION = EMPTY;"); var initializer = new SqlServerServiceBrokerInitializer(connection); var application = new ServiceBrokerApplicationBuilder(new ServiceCollection()) // Altered .AddMessageType<TestMessageType>() // Created .AddMessageType<TestMessageTypeNoValidation>() // Created (or altered) indirectly via contracts .AddContract<TestContract>() // Created (or altered) indirectly via contracts of services .AddService<TargetService>() .Build(); // Act await initializer.InitializeAsync(application); // Assert var messageTypes = await connection.QueryAsync("SELECT * FROM sys.service_message_types"); Assert.Contains(messageTypes, m => m.name == "TestMessageType" && m.validation == "N "); Assert.Contains(messageTypes, m => m.name == "TestMessageTypeNoValidation" && m.validation == "N "); Assert.Contains(messageTypes, m => m.name == "TestMessageTypeEmptyValidation" && m.validation == "E "); Assert.Contains(messageTypes, m => m.name == "TestMessageTypeXmlValidation" && m.validation == "X "); }
public async Task Queues_AreCreated() { // Arrange await InitializeDatabaseAsync(); var initializer = new SqlServerServiceBrokerInitializer(connection); var application = new ServiceBrokerApplicationBuilder(new ServiceCollection()) .AddQueue<QueueCreatedDirectly>() .AddService<ServiceCreatedDirectly>() .Build(); // Act await initializer.InitializeAsync(application); // Assert var queues = await connection.QueryAsync("SELECT * FROM sys.service_queues"); Assert.Contains(queues, c => c.name == nameof(QueueCreatedDirectly)); Assert.Contains(queues, c => c.name == nameof(QueueCreatedIndirectly)); }
public static void AddSleeper(this IServiceCollection services, Action<ServiceBrokerApplicationBuilder> setupAction) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (setupAction == null) { throw new ArgumentNullException(nameof(setupAction)); } services.AddLogging(); var builder = new ServiceBrokerApplicationBuilder(services); setupAction(builder); services.AddSingleton(builder.Build()); }