Skip to content

Commit 746ca59

Browse files
[ISSUE #1347]🧪Add unit test for route_data_view (#1348)
1 parent a4cd7df commit 746ca59

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

rocketmq-remoting/src/protocol/route/route_data_view.rs

+107
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,110 @@ impl QueueData {
178178
self.topic_sys_flag
179179
}
180180
}
181+
182+
#[cfg(test)]
183+
mod tests {
184+
use std::collections::HashMap;
185+
186+
use super::*;
187+
188+
#[test]
189+
fn broker_data_new_initializes_correctly() {
190+
let cluster = CheetahString::from("test_cluster");
191+
let broker_name = CheetahString::from("test_broker");
192+
let broker_addrs = HashMap::new();
193+
let zone_name = Some(CheetahString::from("test_zone"));
194+
195+
let broker_data = BrokerData::new(
196+
cluster.clone(),
197+
broker_name.clone(),
198+
broker_addrs.clone(),
199+
zone_name.clone(),
200+
);
201+
202+
assert_eq!(broker_data.cluster, cluster);
203+
assert_eq!(broker_data.broker_name, broker_name);
204+
assert_eq!(broker_data.broker_addrs, broker_addrs);
205+
assert_eq!(broker_data.zone_name, zone_name);
206+
assert!(!broker_data.enable_acting_master);
207+
}
208+
209+
#[test]
210+
fn broker_data_setters_work_correctly() {
211+
let mut broker_data = BrokerData::new(
212+
CheetahString::from("cluster1"),
213+
CheetahString::from("broker1"),
214+
HashMap::new(),
215+
None,
216+
);
217+
218+
broker_data.set_cluster(CheetahString::from("cluster2"));
219+
broker_data.set_broker_name(CheetahString::from("broker2"));
220+
broker_data.set_broker_addrs(HashMap::from([(1, CheetahString::from("127.0.0.1"))]));
221+
broker_data.set_zone_name(Some(CheetahString::from("zone1")));
222+
broker_data.set_enable_acting_master(true);
223+
224+
assert_eq!(broker_data.cluster, CheetahString::from("cluster2"));
225+
assert_eq!(broker_data.broker_name, CheetahString::from("broker2"));
226+
assert_eq!(
227+
broker_data.broker_addrs.get(&1).unwrap(),
228+
&CheetahString::from("127.0.0.1")
229+
);
230+
assert_eq!(broker_data.zone_name, Some(CheetahString::from("zone1")));
231+
assert!(broker_data.enable_acting_master);
232+
}
233+
234+
#[test]
235+
fn broker_data_remove_broker_by_addr_works_correctly() {
236+
let mut broker_data = BrokerData::new(
237+
CheetahString::from("cluster1"),
238+
CheetahString::from("broker1"),
239+
HashMap::from([
240+
(1, CheetahString::from("127.0.0.1")),
241+
(2, CheetahString::from("127.0.0.2")),
242+
]),
243+
None,
244+
);
245+
246+
broker_data.remove_broker_by_addr(1, "127.0.0.1");
247+
//assert!(broker_data.broker_addrs.get(&1).is_none());
248+
assert!(broker_data.broker_addrs.get(&2).is_some());
249+
}
250+
251+
#[test]
252+
fn broker_data_select_broker_addr_returns_master_if_exists() {
253+
let broker_data = BrokerData::new(
254+
CheetahString::from("cluster1"),
255+
CheetahString::from("broker1"),
256+
HashMap::from([(mix_all::MASTER_ID, CheetahString::from("127.0.0.1"))]),
257+
None,
258+
);
259+
260+
let selected_addr = broker_data.select_broker_addr();
261+
assert_eq!(selected_addr.unwrap(), CheetahString::from("127.0.0.1"));
262+
}
263+
264+
#[test]
265+
fn broker_data_select_broker_addr_returns_random_if_no_master() {
266+
let broker_data = BrokerData::new(
267+
CheetahString::from("cluster1"),
268+
CheetahString::from("broker1"),
269+
HashMap::from([(2, CheetahString::from("127.0.0.2"))]),
270+
None,
271+
);
272+
273+
let selected_addr = broker_data.select_broker_addr();
274+
assert_eq!(selected_addr.unwrap(), CheetahString::from("127.0.0.2"));
275+
}
276+
277+
#[test]
278+
fn queue_data_new_initializes_correctly() {
279+
let queue_data = QueueData::new(CheetahString::from("broker1"), 4, 4, 6, 0);
280+
281+
assert_eq!(queue_data.broker_name, CheetahString::from("broker1"));
282+
assert_eq!(queue_data.read_queue_nums, 4);
283+
assert_eq!(queue_data.write_queue_nums, 4);
284+
assert_eq!(queue_data.perm, 6);
285+
assert_eq!(queue_data.topic_sys_flag, 0);
286+
}
287+
}

0 commit comments

Comments
 (0)