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