rocketmq_remoting/protocol/header/namesrv/
brokerid_change_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodecV2;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Debug, Clone, Serialize, Deserialize, Default, RequestHeaderCodecV2)]
21pub struct NotifyMinBrokerIdChangeRequestHeader {
22 #[serde(rename = "minBrokerId")]
23 pub min_broker_id: Option<u64>,
24
25 #[serde(rename = "brokerName")]
26 pub broker_name: Option<CheetahString>,
27
28 #[serde(rename = "minBrokerAddr")]
29 pub min_broker_addr: Option<CheetahString>,
30
31 #[serde(rename = "offlineBrokerAddr")]
32 pub offline_broker_addr: Option<CheetahString>,
33
34 #[serde(rename = "haBrokerAddr")]
35 pub ha_broker_addr: Option<CheetahString>,
36}
37
38impl NotifyMinBrokerIdChangeRequestHeader {
39 pub fn new(
40 min_broker_id: Option<u64>,
41 broker_name: Option<CheetahString>,
42 min_broker_addr: Option<CheetahString>,
43 offline_broker_addr: Option<CheetahString>,
44 ha_broker_addr: Option<CheetahString>,
45 ) -> Self {
46 NotifyMinBrokerIdChangeRequestHeader {
47 min_broker_id,
48 broker_name,
49 min_broker_addr,
50 offline_broker_addr,
51 ha_broker_addr,
52 }
53 }
54}
55
56#[cfg(test)]
57mod tests {
58 use cheetah_string::CheetahString;
59
60 use super::*;
61
62 #[test]
63 fn new_creates_instance_with_all_fields() {
64 let header = NotifyMinBrokerIdChangeRequestHeader::new(
65 Some(1),
66 Some(CheetahString::from("broker1")),
67 Some(CheetahString::from("addr1")),
68 Some(CheetahString::from("addr2")),
69 Some(CheetahString::from("addr3")),
70 );
71 assert_eq!(header.min_broker_id, Some(1));
72 assert_eq!(header.broker_name.as_deref(), Some("broker1"));
73 assert_eq!(header.min_broker_addr.as_deref(), Some("addr1"));
74 assert_eq!(header.offline_broker_addr.as_deref(), Some("addr2"));
75 assert_eq!(header.ha_broker_addr.as_deref(), Some("addr3"));
76 }
77
78 #[test]
79 fn new_creates_instance_with_none_fields() {
80 let header = NotifyMinBrokerIdChangeRequestHeader::new(None, None, None, None, None);
81 assert_eq!(header.min_broker_id, None);
82 assert_eq!(header.broker_name, None);
83 assert_eq!(header.min_broker_addr, None);
84 assert_eq!(header.offline_broker_addr, None);
85 assert_eq!(header.ha_broker_addr, None);
86 }
87
88 #[test]
89 fn default_creates_instance_with_none_fields() {
90 let header: NotifyMinBrokerIdChangeRequestHeader = Default::default();
91 assert_eq!(header.min_broker_id, None);
92 assert_eq!(header.broker_name, None);
93 assert_eq!(header.min_broker_addr, None);
94 assert_eq!(header.offline_broker_addr, None);
95 assert_eq!(header.ha_broker_addr, None);
96 }
97}