rocketmq_remoting/protocol/header/
list_acl_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 ListAclRequestHeader {
23 pub subject_filter: CheetahString,
24 pub resource_filter: CheetahString,
25}
26
27pub type ListAclsRequestHeader = ListAclRequestHeader;
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32 use cheetah_string::CheetahString;
33
34 #[test]
35 fn list_acl_request_header_default() {
36 let header: ListAclRequestHeader = Default::default();
37 assert_eq!(header.subject_filter, CheetahString::default());
38 assert_eq!(header.resource_filter, CheetahString::default());
39 }
40
41 #[test]
42 fn list_acl_request_header_serialize() {
43 let header = ListAclRequestHeader {
44 subject_filter: CheetahString::from("subjectFilterValue"),
45 resource_filter: CheetahString::from("resourceFilterValue"),
46 };
47
48 let json_str = serde_json::to_string(&header).unwrap();
49
50 assert!(json_str.contains("\"subjectFilter\":\"subjectFilterValue\""));
52 assert!(json_str.contains("\"resourceFilter\":\"resourceFilterValue\""));
53 }
54
55 #[test]
56 fn list_acl_request_header_deserialize() {
57 let json_str = r#"{
58 "subjectFilter": "subjectFilterValue",
59 "resourceFilter": "resourceFilterValue"
60 }"#;
61
62 let header: ListAclRequestHeader = serde_json::from_str(json_str).unwrap();
63
64 assert_eq!(header.subject_filter, CheetahString::from("subjectFilterValue"));
65 assert_eq!(header.resource_filter, CheetahString::from("resourceFilterValue"));
66 }
67
68 #[test]
69 fn list_acl_request_header_clone() {
70 let header = ListAclRequestHeader {
71 subject_filter: CheetahString::from("subjectFilterValue"),
72 resource_filter: CheetahString::from("resourceFilterValue"),
73 };
74
75 let cloned_header = header.clone();
76
77 assert_eq!(header.subject_filter, cloned_header.subject_filter);
78 assert_eq!(header.resource_filter, cloned_header.resource_filter);
79 }
80
81 #[test]
82 fn list_acls_request_header_alias_matches_java_name() {
83 let header = ListAclsRequestHeader {
84 subject_filter: CheetahString::from("subject"),
85 resource_filter: CheetahString::from("resource"),
86 };
87
88 assert_eq!(header.subject_filter, "subject");
89 assert_eq!(header.resource_filter, "resource");
90 }
91}