rocketmq_remoting/protocol/header/
notify_consumer_ids_changed_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodecV2;
17use serde::Deserialize;
18use serde::Serialize;
19
20use crate::rpc::rpc_request_header::RpcRequestHeader;
21
22#[derive(Serialize, Deserialize, Debug, RequestHeaderCodecV2)]
23#[serde(rename_all = "camelCase")]
24pub struct NotifyConsumerIdsChangedRequestHeader {
25 #[required]
26 pub consumer_group: CheetahString,
27
28 #[serde(flatten)]
29 pub rpc_request_header: Option<RpcRequestHeader>,
30}
31
32#[cfg(test)]
33mod tests {
34 use super::*;
35
36 #[test]
37 fn notify_consumer_ids_changed_request_header_serialization() {
38 let header = NotifyConsumerIdsChangedRequestHeader {
39 consumer_group: CheetahString::from("group1"),
40 rpc_request_header: None,
41 };
42 let json = serde_json::to_string(&header).unwrap();
43 assert!(json.contains("\"consumerGroup\":\"group1\""));
44 }
45
46 #[test]
47 fn notify_consumer_ids_changed_request_header_deserialization() {
48 let json = r#"{"consumerGroup":"group1"}"#;
49 let header: NotifyConsumerIdsChangedRequestHeader = serde_json::from_str(json).unwrap();
50 assert_eq!(header.consumer_group, "group1");
51 }
52}