Skip to content

Commit a6afc37

Browse files
committed
primitives - sentry - MessageResponse test
1 parent 719fd27 commit a6afc37

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

primitives/src/sentry.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ pub mod message {
3535
pub struct Message<T: Type>(T);
3636

3737
impl<T: Type> Message<T> {
38+
pub fn new(message: T) -> Self {
39+
Self(message)
40+
}
41+
3842
pub fn into_inner(self) -> T {
3943
self.0
4044
}
@@ -61,6 +65,46 @@ pub mod message {
6165
self.0.into()
6266
}
6367
}
68+
69+
#[cfg(test)]
70+
mod test {
71+
use super::*;
72+
use crate::sentry::MessageResponse;
73+
use chrono::{TimeZone, Utc};
74+
use serde_json::{from_value, json, to_value};
75+
76+
#[test]
77+
fn de_serialization_of_a_message() {
78+
let approve_state_message = json!({
79+
"from":"0x2892f6C41E0718eeeDd49D98D648C789668cA67d",
80+
"msg": {
81+
"type":"ApproveState",
82+
"stateRoot":"4739522efc1e81499541621759dadb331eaf08829d6a3851b4b654dfaddc9935",
83+
"signature":"0x00128a39b715e87475666c3220fc0400bf34a84d24f77571d2b4e1e88b141d52305438156e526ff4fe96b7a13e707ab2f6f3ca00bd928dabc7f516b56cfe6fd61c",
84+
"isHealthy":true,
85+
"exhausted":false
86+
},
87+
"received":"2021-01-05T14:00:48.549Z"
88+
});
89+
90+
let actual_message: MessageResponse<ApproveState> =
91+
from_value(approve_state_message.clone()).expect("Should deserialize");
92+
let expected_message = MessageResponse {
93+
from: "0x2892f6C41E0718eeeDd49D98D648C789668cA67d".parse().expect("Valid ValidatorId"),
94+
received: Utc.ymd(2021, 1, 5).and_hms_milli(14,0,48, 549),
95+
msg: Message::new(ApproveState {
96+
state_root: "4739522efc1e81499541621759dadb331eaf08829d6a3851b4b654dfaddc9935".to_string(),
97+
signature: "0x00128a39b715e87475666c3220fc0400bf34a84d24f77571d2b4e1e88b141d52305438156e526ff4fe96b7a13e707ab2f6f3ca00bd928dabc7f516b56cfe6fd61c".to_string(),
98+
is_healthy: true,
99+
exhausted: false,
100+
}),
101+
};
102+
103+
pretty_assertions::assert_eq!(expected_message, actual_message);
104+
pretty_assertions::assert_eq!(to_value(expected_message).expect("should serialize"), approve_state_message);
105+
106+
}
107+
}
64108
}
65109

66110
#[serde(tag = "type", rename_all = "SCREAMING_SNAKE_CASE")]

0 commit comments

Comments
 (0)