#![recursion_limit = "256"]
mod support;
use rocketmq_client_rust::AssignmentControl;
use rocketmq_client_rust::ClientSessionProvider;
use rocketmq_client_rust::ConsumerLifecycle;
use rocketmq_client_rust::ConsumerOffsetControl;
use rocketmq_client_rust::DefaultLitePullConsumer;
use rocketmq_client_rust::MessagePoll;
use rocketmq_client_rust::SubscriptionControl;
fn assert_lite_pull_capabilities<T>()
where
T: SubscriptionControl + AssignmentControl + MessagePoll + ConsumerOffsetControl + ConsumerLifecycle,
{
}
#[test]
fn lite_pull_handle_implements_scoped_capabilities() {
assert_lite_pull_capabilities::<DefaultLitePullConsumer>();
}
#[test]
fn cloned_lite_pull_handles_share_one_session() {
let consumer = DefaultLitePullConsumer::builder(support::client_runtime("lite-pull-capability-session"))
.consumer_group("lite-pull-capability-session")
.build()
.expect("consumer should build");
let clone = consumer.clone();
assert!(consumer
.client_session()
.expect("public consumer should have a session")
.shares_runtime_with(
clone
.client_session()
.expect("cloned public consumer should have a session"),
));
}