@@ -23,3 +23,79 @@ use serde::Serialize;
23
23
pub struct ProducerData {
24
24
pub group_name : CheetahString ,
25
25
}
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