rocketmq_remoting/protocol/header/
change_invisible_time_response_header.rs1use rocketmq_macros::RequestHeaderCodecV2;
18use serde::Deserialize;
19use serde::Serialize;
20
21#[derive(Serialize, Deserialize, Debug, Default, RequestHeaderCodecV2)]
22#[serde(rename_all = "camelCase")]
23pub struct ChangeInvisibleTimeResponseHeader {
24 #[required]
25 pub pop_time: u64,
26
27 #[required]
28 pub revive_qid: i32,
29
30 #[required]
31 pub invisible_time: i64,
32}
33
34#[cfg(test)]
35mod tests {
36 use serde_json;
37
38 use super::*;
39
40 #[test]
41 fn change_invisible_time_response_header_display_format() {
42 let header = ChangeInvisibleTimeResponseHeader {
43 pop_time: 123456789,
44 revive_qid: 1,
45 invisible_time: 987654321,
46 };
47 assert_eq!(
48 format!("{:?}", header),
49 "ChangeInvisibleTimeResponseHeader { pop_time: 123456789, revive_qid: 1, \
50 invisible_time: 987654321 }"
51 );
52 }
53
54 #[test]
55 fn change_invisible_time_response_header_serialize() {
56 let header = ChangeInvisibleTimeResponseHeader {
57 pop_time: 123456789,
58 revive_qid: 1,
59 invisible_time: 987654321,
60 };
61 let serialized = serde_json::to_string(&header).unwrap();
62 assert_eq!(
63 serialized,
64 r#"{"popTime":123456789,"reviveQid":1,"invisibleTime":987654321}"#
65 );
66 }
67
68 #[test]
69 fn change_invisible_time_response_header_deserialize() {
70 let json = r#"{"popTime":123456789,"reviveQid":1,"invisibleTime":987654321}"#;
71 let header: ChangeInvisibleTimeResponseHeader = serde_json::from_str(json).unwrap();
72 assert_eq!(header.pop_time, 123456789);
73 assert_eq!(header.revive_qid, 1);
74 assert_eq!(header.invisible_time, 987654321);
75 }
76
77 #[test]
78 fn change_invisible_time_response_header_default() {
79 let header = ChangeInvisibleTimeResponseHeader::default();
80 assert_eq!(header.pop_time, 0);
81 assert_eq!(header.revive_qid, 0);
82 assert_eq!(header.invisible_time, 0);
83 }
84}