|
1 | 1 | use crate::utils::admin::create_topic; |
2 | 2 | use crate::utils::containers::KafkaContext; |
3 | 3 | use crate::utils::logging::init_test_logger; |
4 | | -use crate::utils::rand::rand_test_topic; |
| 4 | +use crate::utils::rand::{rand_test_group, rand_test_topic}; |
5 | 5 | use crate::utils::{get_broker_version, KafkaVersion}; |
6 | 6 | use backon::{BlockingRetryable, ExponentialBuilder}; |
7 | 7 | use rdkafka::admin::{ |
8 | | - AdminOptions, AlterConfig, ConfigEntry, ConfigSource, NewPartitions, NewTopic, |
| 8 | + AdminOptions, AlterConfig, ConfigEntry, ConfigSource, GroupResult, NewPartitions, NewTopic, |
9 | 9 | OwnedResourceSpecifier, ResourceSpecifier, TopicReplication, |
10 | 10 | }; |
11 | 11 | use rdkafka::error::KafkaError; |
@@ -69,7 +69,7 @@ pub async fn test_topic_create_and_delete() { |
69 | 69 |
|
70 | 70 | // Create consumer client |
71 | 71 | let consumer_client = |
72 | | - utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers) |
| 72 | + utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers, None) |
73 | 73 | .await |
74 | 74 | .expect("could not create consumer client"); |
75 | 75 |
|
@@ -276,7 +276,7 @@ pub async fn test_incorrect_replication_factors_are_ignored_when_creating_partit |
276 | 276 |
|
277 | 277 | // Create consumer client |
278 | 278 | let consumer_client = |
279 | | - utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers) |
| 279 | + utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers, None) |
280 | 280 | .await |
281 | 281 | .expect("could not create consumer client"); |
282 | 282 |
|
@@ -361,7 +361,7 @@ pub async fn test_mixed_success_results() { |
361 | 361 |
|
362 | 362 | // Create consumer client |
363 | 363 | let consumer_client = |
364 | | - utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers) |
| 364 | + utils::consumer::create_unsubscribed_base_consumer(&kafka_context.bootstrap_servers, None) |
365 | 365 | .await |
366 | 366 | .expect("could not create consumer client"); |
367 | 367 |
|
@@ -623,3 +623,43 @@ async fn test_configs() { |
623 | 623 | .expect("alter configs failed"); |
624 | 624 | assert_eq!(res, &[Ok(OwnedResourceSpecifier::Broker(utils::BROKER_ID))]); |
625 | 625 | } |
| 626 | + |
| 627 | +#[tokio::test] |
| 628 | +async fn test_groups() { |
| 629 | + init_test_logger(); |
| 630 | + |
| 631 | + // Get Kafka container context. |
| 632 | + let kafka_context = KafkaContext::shared() |
| 633 | + .await |
| 634 | + .expect("could not create kafka context"); |
| 635 | + |
| 636 | + // Create admin client |
| 637 | + let admin_client = utils::admin::create_admin_client(&kafka_context.bootstrap_servers) |
| 638 | + .await |
| 639 | + .expect("could not create admin client"); |
| 640 | + let opts = AdminOptions::new(); |
| 641 | + |
| 642 | + // Verify that deleting a valid and invalid group results in a mixed result |
| 643 | + // set. |
| 644 | + { |
| 645 | + let group_name = rand_test_group(); |
| 646 | + let unknown_group_name = rand_test_group(); |
| 647 | + create_consumer_group(&group_name).await; |
| 648 | + let res = admin_client |
| 649 | + .delete_groups( |
| 650 | + &[&group_name, &unknown_group_name], |
| 651 | + &AdminOptions::default(), |
| 652 | + ) |
| 653 | + .await; |
| 654 | + assert_eq!( |
| 655 | + res, |
| 656 | + Ok(vec![ |
| 657 | + Ok(group_name.to_string()), |
| 658 | + Err(( |
| 659 | + unknown_group_name.to_string(), |
| 660 | + RDKafkaErrorCode::GroupIdNotFound |
| 661 | + )) |
| 662 | + ]) |
| 663 | + ); |
| 664 | + } |
| 665 | +} |
0 commit comments