rocketmq_remoting/protocol/header/
delete_user_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)]
21#[serde(rename_all = "camelCase")]
22pub struct DeleteUserRequestHeader {
23 pub username: CheetahString,
24}
25
26impl DeleteUserRequestHeader {
27 pub fn new(username: CheetahString) -> Self {
28 Self { username }
29 }
30
31 pub fn set_username(&mut self, username: CheetahString) {
32 self.username = username;
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use std::collections::HashMap;
39
40 use super::*;
41 use crate::protocol::command_custom_header::CommandCustomHeader;
42 use crate::protocol::command_custom_header::FromMap;
43
44 #[test]
45 fn delete_user_request_header_new() {
46 let username = CheetahString::from_static_str("test_user");
47 let header = DeleteUserRequestHeader::new(username.clone());
48
49 assert_eq!(header.username, username);
50 }
51
52 #[test]
53 fn delete_user_request_header_default() {
54 let header = DeleteUserRequestHeader::default();
55
56 assert!(header.username.is_empty());
57 }
58
59 #[test]
60 fn delete_user_request_header_set_username() {
61 let mut header = DeleteUserRequestHeader::default();
62 let username = CheetahString::from_static_str("admin");
63
64 header.set_username(username.clone());
65
66 assert_eq!(header.username, username);
67 }
68
69 #[test]
70 fn delete_user_request_header_serializes_correctly() {
71 let header = DeleteUserRequestHeader {
72 username: CheetahString::from_static_str("test_admin"),
73 };
74
75 let map = header.to_map().unwrap();
76
77 assert_eq!(
78 map.get(&CheetahString::from_static_str("username")).unwrap(),
79 "test_admin"
80 );
81 }
82
83 #[test]
84 fn delete_user_request_header_deserializes_correctly() {
85 let mut map = HashMap::new();
86 map.insert(
87 CheetahString::from_static_str("username"),
88 CheetahString::from_static_str("deserialized_user"),
89 );
90
91 let header = <DeleteUserRequestHeader as FromMap>::from(&map).unwrap();
92
93 assert_eq!(header.username.as_str(), "deserialized_user");
94 }
95}