rocketmq_protocol/protocol/header/controller/
alter_sync_state_set_response_header.rs1use rocketmq_macros::RequestHeaderCodec;
16use serde::Deserialize;
17use serde::Serialize;
18
19#[derive(Clone, Debug, Serialize, Deserialize, Default, RequestHeaderCodec)]
20#[serde(rename_all = "camelCase")]
21#[header(
22 type_id = "rocketmq_protocol::protocol::header::controller::alter_sync_state_set_response_header::AlterSyncStateSetResponseHeader",
23 java_class = "org.apache.rocketmq.remoting.protocol.header.controller.AlterSyncStateSetResponseHeader"
24)]
25pub struct AlterSyncStateSetResponseHeader {
26 #[header(default, default_semantic = "literal:0")]
27 pub new_sync_state_set_epoch: i32,
28}
29
30#[cfg(test)]
31mod tests {
32 use std::collections::HashMap;
33
34 use cheetah_string::CheetahString;
35
36 use super::*;
37 use crate::protocol::command_custom_header::CommandCustomHeader;
38 use crate::protocol::command_custom_header::FromMap;
39
40 #[test]
41 fn alter_sync_state_set_response_header_serializes_correctly() {
42 let header = AlterSyncStateSetResponseHeader {
43 new_sync_state_set_epoch: 10,
44 };
45 let map = header.to_map().unwrap();
46 assert_eq!(
47 map.get(&CheetahString::from_static_str("newSyncStateSetEpoch"))
48 .unwrap(),
49 "10"
50 );
51 }
52
53 #[test]
54 fn alter_sync_state_set_response_header_deserializes_correctly() {
55 let mut map = HashMap::new();
56 map.insert(
57 CheetahString::from_static_str("newSyncStateSetEpoch"),
58 CheetahString::from_static_str("10"),
59 );
60
61 let header = <AlterSyncStateSetResponseHeader as FromMap>::from(&map).unwrap();
62 assert_eq!(header.new_sync_state_set_epoch, 10);
63 }
64}