use std::collections::HashMap;
use cheetah_string::CheetahString;
use crate::protocol::body::set_message_request_mode_request_body::SetMessageRequestModeRequestBody;
pub type MessageRequestModeMap =
HashMap<CheetahString , HashMap<CheetahString , SetMessageRequestModeRequestBody>>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Default)]
#[serde(rename_all = "camelCase")]
pub struct MessageRequestModeSerializeWrapper {
message_request_mode_map: MessageRequestModeMap,
}
impl MessageRequestModeSerializeWrapper {
pub fn new(message_request_mode_map: MessageRequestModeMap) -> Self {
Self {
message_request_mode_map,
}
}
pub fn message_request_mode_map(&self) -> &MessageRequestModeMap {
&self.message_request_mode_map
}
pub fn into_inner(self) -> MessageRequestModeMap {
self.message_request_mode_map
}
pub fn from_inner(message_request_mode_map: MessageRequestModeMap) -> Self {
Self {
message_request_mode_map,
}
}
pub fn set_message_request_mode_map(&mut self, map: MessageRequestModeMap) {
self.message_request_mode_map = map;
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::protocol::body::set_message_request_mode_request_body::SetMessageRequestModeRequestBody;
#[test]
fn default_creates_wrapper_with_empty_map() {
let wrapper = MessageRequestModeSerializeWrapper::default();
assert!(wrapper.message_request_mode_map().is_empty());
}
#[test]
fn new_creates_wrapper_with_provided_map() {
let mut map = MessageRequestModeMap::new();
let mut group_map = HashMap::new();
group_map.insert(
CheetahString::from("group1"),
SetMessageRequestModeRequestBody::default(),
);
map.insert(CheetahString::from("topic1"), group_map);
let wrapper = MessageRequestModeSerializeWrapper::new(map);
assert_eq!(wrapper.message_request_mode_map().len(), 1);
assert!(wrapper
.message_request_mode_map()
.contains_key(&CheetahString::from("topic1")));
}
#[test]
fn new_creates_wrapper_with_empty_map() {
let map = MessageRequestModeMap::new();
let wrapper = MessageRequestModeSerializeWrapper::new(map);
assert!(wrapper.message_request_mode_map().is_empty());
}
}