rocketmq_protocol/protocol/header/controller/
apply_broker_id_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodec;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Clone, Debug, Serialize, Deserialize, Default, RequestHeaderCodec)]
21#[serde(rename_all = "camelCase")]
22#[header(
23 type_id = "rocketmq_protocol::protocol::header::controller::apply_broker_id_request_header::ApplyBrokerIdRequestHeader",
24 java_class = "org.apache.rocketmq.remoting.protocol.header.controller.register.ApplyBrokerIdRequestHeader"
25)]
26pub struct ApplyBrokerIdRequestHeader {
27 #[header(default, default_semantic = "literal:")]
28 pub cluster_name: CheetahString,
29 #[header(default, default_semantic = "literal:")]
30 pub broker_name: CheetahString,
31 #[header(default, default_semantic = "literal:0")]
32 pub applied_broker_id: i64,
33 #[header(default, default_semantic = "literal:")]
34 pub register_check_code: CheetahString,
35}
36
37#[cfg(test)]
38mod tests {
39 use std::collections::HashMap;
40
41 use super::*;
42 use crate::protocol::command_custom_header::CommandCustomHeader;
43 use crate::protocol::command_custom_header::FromMap;
44
45 #[test]
46 fn apply_broker_id_request_header_serializes_correctly() {
47 let header = ApplyBrokerIdRequestHeader {
48 cluster_name: CheetahString::from_static_str("test_cluster"),
49 broker_name: CheetahString::from_static_str("test_broker"),
50 applied_broker_id: 9876543210,
51 register_check_code: CheetahString::from_static_str("check_code_123"),
52 };
53 let map = header.to_map().unwrap();
54 assert_eq!(
55 map.get(&CheetahString::from_static_str("clusterName")).unwrap(),
56 "test_cluster"
57 );
58 assert_eq!(
59 map.get(&CheetahString::from_static_str("brokerName")).unwrap(),
60 "test_broker"
61 );
62 assert_eq!(
63 map.get(&CheetahString::from_static_str("appliedBrokerId")).unwrap(),
64 "9876543210"
65 );
66 assert_eq!(
67 map.get(&CheetahString::from_static_str("registerCheckCode")).unwrap(),
68 "check_code_123"
69 );
70 }
71
72 #[test]
73 fn apply_broker_id_request_header_deserializes_correctly() {
74 let mut map = HashMap::new();
75 map.insert(
76 CheetahString::from_static_str("clusterName"),
77 CheetahString::from_static_str("test_cluster"),
78 );
79 map.insert(
80 CheetahString::from_static_str("brokerName"),
81 CheetahString::from_static_str("test_broker"),
82 );
83 map.insert(
84 CheetahString::from_static_str("appliedBrokerId"),
85 CheetahString::from_static_str("9876543210"),
86 );
87 map.insert(
88 CheetahString::from_static_str("registerCheckCode"),
89 CheetahString::from_static_str("check_code_123"),
90 );
91
92 let header = <ApplyBrokerIdRequestHeader as FromMap>::from(&map).unwrap();
93 assert_eq!(header.cluster_name, "test_cluster");
94 assert_eq!(header.broker_name, "test_broker");
95 assert_eq!(header.applied_broker_id, 9876543210);
96 assert_eq!(header.register_check_code, "check_code_123");
97 }
98}