public async Task MoveConversationAsync_Succeeds() { // Arrange await InitializeDatabaseAsync(); var provider = new SqlServerServiceBroker(connection); var handle = await BeginDialogAsync(); var sql = @"SELECT [conversation_group_id] FROM sys.conversation_endpoints WHERE conversation_handle = @handle"; var newGroupId = await connection.ExecuteScalarAsync<Guid>(sql, new { handle }); handle = await BeginDialogAsync(); // Act await provider.MoveConversationAsync(new MoveConversationArguments(handle, newGroupId)); var actualGroupId = await connection.ExecuteScalarAsync<Guid>(sql, new { handle }); // Assert Assert.Equal(newGroupId, actualGroupId); }
public async Task MoveConversationAsync_UsesTransaction() { // Arrange await InitializeDatabaseAsync(); var provider = new SqlServerServiceBroker(connection); var handle1 = await BeginDialogAsync(); var handle2 = await BeginDialogAsync(); var sql = @"SELECT [conversation_group_id] FROM sys.conversation_endpoints WHERE conversation_handle = @handle"; var group1 = await connection.ExecuteScalarAsync<Guid>(sql, new { handle = handle1 }); var group2 = await connection.ExecuteScalarAsync<Guid>(sql, new { handle = handle2 }); // Act using (var transaction = await provider.BeginTransactionAsync()) { await provider.MoveConversationAsync(new MoveConversationArguments(handle1, group2)); transaction.Rollback(); } var afterRollback = await connection.ExecuteScalarAsync<Guid>(sql, new { handle = handle1 }); // Assert Assert.Equal(group1, afterRollback); }
public async Task MoveConversationAsync_ArgumentsCannotBeNull() { // Arrange var provider = new SqlServerServiceBroker(connection); // Act Func<Task> call = async () => await provider.MoveConversationAsync(null); // Assert await Assert.ThrowsAsync<ArgumentNullException>("arguments", call); }