From 6a1ca93d9c8197446d4b11d47a89da1267efe15b Mon Sep 17 00:00:00 2001 From: ButterflyEffect1991 <395967916@qq.com> Date: Mon, 2 Dec 2024 15:54:38 +0000 Subject: [PATCH] =?UTF-8?q?[ISSUE=20#1510]=E2=99=BB=EF=B8=8FRefactor=20Get?= =?UTF-8?q?BrokerMemberGroupRequestHeader=20with=20derive=20marco=20Reques?= =?UTF-8?q?tHeaderCodec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../protocol/header/namesrv/broker_request.rs | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/rocketmq-remoting/src/protocol/header/namesrv/broker_request.rs b/rocketmq-remoting/src/protocol/header/namesrv/broker_request.rs index 2f10bbe3..0ae8e495 100644 --- a/rocketmq-remoting/src/protocol/header/namesrv/broker_request.rs +++ b/rocketmq-remoting/src/protocol/header/namesrv/broker_request.rs @@ -18,6 +18,7 @@ use std::collections::HashMap; use cheetah_string::CheetahString; +use rocketmq_macros::RequestHeaderCodec; use serde::Deserialize; use serde::Serialize; @@ -252,16 +253,18 @@ impl FromMap for BrokerHeartbeatRequestHeader { } } -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, RequestHeaderCodec)] #[serde(rename_all = "camelCase")] pub struct GetBrokerMemberGroupRequestHeader { + #[required] pub cluster_name: CheetahString, + #[required] pub broker_name: CheetahString, } impl GetBrokerMemberGroupRequestHeader { - const BROKER_NAME: &'static str = "brokerName"; - const CLUSTER_NAME: &'static str = "clusterName"; + /* const BROKER_NAME: &'static str = "brokerName"; + const CLUSTER_NAME: &'static str = "clusterName";*/ pub fn new( cluster_name: impl Into, @@ -275,7 +278,7 @@ impl GetBrokerMemberGroupRequestHeader { } } -impl CommandCustomHeader for GetBrokerMemberGroupRequestHeader { +/*impl CommandCustomHeader for GetBrokerMemberGroupRequestHeader { fn to_map(&self) -> Option> { Some(HashMap::from([ ( @@ -307,4 +310,33 @@ impl FromMap for GetBrokerMemberGroupRequestHeader { .unwrap_or_default(), }) } +}*/ + +#[cfg(test)] +mod tests { + use cheetah_string::CheetahString; + + use super::*; + + #[test] + fn new_creates_instance_with_correct_values() { + let header = GetBrokerMemberGroupRequestHeader::new("testCluster", "testBroker"); + assert_eq!(header.cluster_name, CheetahString::from("testCluster")); + assert_eq!(header.broker_name, CheetahString::from("testBroker")); + } + + #[test] + fn new_creates_instance_with_empty_values() { + let header = GetBrokerMemberGroupRequestHeader::new("", ""); + assert_eq!(header.cluster_name, CheetahString::from("")); + assert_eq!(header.broker_name, CheetahString::from("")); + } + + #[test] + fn new_creates_instance_with_long_values() { + let long_string = "a".repeat(1000); + let header = GetBrokerMemberGroupRequestHeader::new(&long_string, &long_string); + assert_eq!(header.cluster_name, CheetahString::from(&long_string)); + assert_eq!(header.broker_name, CheetahString::from(&long_string)); + } }