Skip to content

Commit 3ce974f

Browse files
committed
[ISSUE #1328]🧪Add test for ConsumerData
1 parent 5ee55bb commit 3ce974f

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

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

+102
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,105 @@ impl Hash for ConsumerData {
4949
self.unit_mode.hash(state);
5050
}
5151
}
52+
53+
#[cfg(test)]
54+
mod tests {
55+
use std::collections::HashSet;
56+
57+
use cheetah_string::CheetahString;
58+
use rocketmq_common::common::consumer::consume_from_where::ConsumeFromWhere;
59+
60+
use super::*;
61+
use crate::protocol::heartbeat::consume_type::ConsumeType;
62+
use crate::protocol::heartbeat::message_model::MessageModel;
63+
use crate::protocol::heartbeat::subscription_data::SubscriptionData;
64+
65+
#[test]
66+
fn consumer_data_default_values() {
67+
let consumer_data = ConsumerData::default();
68+
assert_eq!(consumer_data.group_name, CheetahString::new());
69+
assert_eq!(consumer_data.consume_type, ConsumeType::default());
70+
assert_eq!(consumer_data.message_model, MessageModel::default());
71+
assert_eq!(
72+
consumer_data.consume_from_where,
73+
ConsumeFromWhere::default()
74+
);
75+
assert!(consumer_data.subscription_data_set.is_empty());
76+
assert!(!consumer_data.unit_mode);
77+
}
78+
79+
#[test]
80+
fn consumer_data_equality() {
81+
let mut subscription_data_set = HashSet::new();
82+
subscription_data_set.insert(SubscriptionData::default());
83+
84+
let consumer_data1 = ConsumerData {
85+
group_name: CheetahString::from("group1"),
86+
consume_type: ConsumeType::default(),
87+
message_model: MessageModel::default(),
88+
consume_from_where: ConsumeFromWhere::default(),
89+
subscription_data_set: subscription_data_set.clone(),
90+
unit_mode: false,
91+
};
92+
93+
let consumer_data2 = ConsumerData {
94+
group_name: CheetahString::from("group1"),
95+
consume_type: ConsumeType::default(),
96+
message_model: MessageModel::default(),
97+
consume_from_where: ConsumeFromWhere::default(),
98+
subscription_data_set,
99+
unit_mode: false,
100+
};
101+
102+
assert_eq!(consumer_data1, consumer_data2);
103+
}
104+
105+
#[test]
106+
fn consumer_data_inequality() {
107+
let consumer_data1 = ConsumerData {
108+
group_name: CheetahString::from("group1"),
109+
consume_type: ConsumeType::default(),
110+
message_model: MessageModel::default(),
111+
consume_from_where: ConsumeFromWhere::default(),
112+
subscription_data_set: HashSet::new(),
113+
unit_mode: false,
114+
};
115+
116+
let consumer_data2 = ConsumerData {
117+
group_name: CheetahString::from("group2"),
118+
consume_type: ConsumeType::default(),
119+
message_model: MessageModel::default(),
120+
consume_from_where: ConsumeFromWhere::default(),
121+
subscription_data_set: HashSet::new(),
122+
unit_mode: false,
123+
};
124+
125+
assert_ne!(consumer_data1, consumer_data2);
126+
}
127+
128+
#[test]
129+
fn consumer_data_hash() {
130+
use std::collections::hash_map::DefaultHasher;
131+
use std::hash::Hash;
132+
use std::hash::Hasher;
133+
134+
let consumer_data = ConsumerData {
135+
group_name: CheetahString::from("group1"),
136+
consume_type: ConsumeType::default(),
137+
message_model: MessageModel::default(),
138+
consume_from_where: ConsumeFromWhere::default(),
139+
subscription_data_set: HashSet::new(),
140+
unit_mode: false,
141+
};
142+
143+
let mut hasher = DefaultHasher::new();
144+
consumer_data.hash(&mut hasher);
145+
let hash1 = hasher.finish();
146+
147+
let mut hasher = DefaultHasher::new();
148+
consumer_data.hash(&mut hasher);
149+
let hash2 = hasher.finish();
150+
151+
assert_eq!(hash1, hash2);
152+
}
153+
}

0 commit comments

Comments
 (0)