Skip to content

Commit 5cbca70

Browse files
authored
[ISSUE #1338]🧪Add Unit test for ProducerData (#1339)
1 parent 742acb5 commit 5cbca70

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

rocketmq-remoting/src/protocol/heartbeat/producer_data.rs

+76
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,79 @@ use serde::Serialize;
2323
pub struct ProducerData {
2424
pub group_name: CheetahString,
2525
}
26+
27+
#[cfg(test)]
28+
mod tests {
29+
use serde_json;
30+
31+
use super::*;
32+
33+
#[test]
34+
fn producer_data_default_values() {
35+
let producer_data = ProducerData::default();
36+
assert_eq!(producer_data.group_name, CheetahString::new());
37+
}
38+
39+
#[test]
40+
fn producer_data_equality() {
41+
let producer_data1 = ProducerData {
42+
group_name: CheetahString::from("group1"),
43+
};
44+
45+
let producer_data2 = ProducerData {
46+
group_name: CheetahString::from("group1"),
47+
};
48+
49+
assert_eq!(producer_data1, producer_data2);
50+
}
51+
52+
#[test]
53+
fn producer_data_inequality() {
54+
let producer_data1 = ProducerData {
55+
group_name: CheetahString::from("group1"),
56+
};
57+
58+
let producer_data2 = ProducerData {
59+
group_name: CheetahString::from("group2"),
60+
};
61+
62+
assert_ne!(producer_data1, producer_data2);
63+
}
64+
65+
#[test]
66+
fn serialize_producer_data() {
67+
let producer_data = ProducerData {
68+
group_name: CheetahString::from("group1"),
69+
};
70+
let serialized = serde_json::to_string(&producer_data).unwrap();
71+
assert_eq!(serialized, r#"{"groupName":"group1"}"#);
72+
}
73+
74+
#[test]
75+
fn deserialize_producer_data() {
76+
let json = r#"{"groupName":"group1"}"#;
77+
let deserialized: ProducerData = serde_json::from_str(json).unwrap();
78+
assert_eq!(deserialized.group_name, CheetahString::from("group1"));
79+
}
80+
81+
#[test]
82+
fn producer_data_hash() {
83+
use std::collections::hash_map::DefaultHasher;
84+
use std::hash::Hash;
85+
use std::hash::Hasher;
86+
87+
let producer_data = ProducerData {
88+
group_name: CheetahString::from("group1"),
89+
};
90+
91+
let mut hasher = DefaultHasher::new();
92+
producer_data.hash(&mut hasher);
93+
let hash1 = hasher.finish();
94+
95+
let mut hasher = DefaultHasher::new();
96+
producer_data.hash(&mut hasher);
97+
let hash2 = hasher.finish();
98+
99+
assert_eq!(hash1, hash2);
100+
}
101+
}

0 commit comments

Comments
 (0)