public async Task GetConversationGroupAsync_UsesTransaction() { // Arrange await InitializeDatabaseAsync(); var provider1 = new SqlServerServiceBroker(connection); var provider2 = new SqlServerServiceBroker(new SqlConnection(connection.ConnectionString)); var handle = await BeginDialogAsync(); IEnumerable<ReceivedMessage> beforeRollback; IEnumerable<ReceivedMessage> afterRollback; await connection.ExecuteAsync("SEND ON CONVERSATION @handle;", new { handle }); // Act using (var transaction = await provider1.BeginTransactionAsync()) { var arguments = new GetConversationGroupArguments("TargetQueue"); var groupId = await provider1.GetConversationGroupAsync(arguments); var receiveArgs = new ReceiveArguments("TargetQueue") { Predicate = groupId.Value, WaitFor = TimeSpan.FromSeconds(1), }; beforeRollback = await provider2.ReceiveAsync(receiveArgs); transaction.Rollback(); afterRollback = await provider2.ReceiveAsync(receiveArgs); } // Assert Assert.Empty(beforeRollback); Assert.NotEmpty(afterRollback); }
public void GetConversationGroupArguments_Constructor_SetsProperties() { // Arrange var queue = "TestQueue"; // Act var arguments = new GetConversationGroupArguments(queue); // Assert Assert.Equal(queue, arguments.QueueName); }