Skip to content

Commit fe2c8f4

Browse files
committed
Add tests for params
1 parent edb552d commit fe2c8f4

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

types/src/v2/params.rs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,3 +195,58 @@ impl Id {
195195
/// Untyped JSON-RPC ID.
196196
// TODO(niklasad1): this should be enforced to only accept: String, Number, or Null.
197197
pub type JsonRpcRawId<'a> = Option<&'a serde_json::value::RawValue>;
198+
199+
#[cfg(test)]
200+
mod tests {
201+
use super::*;
202+
203+
#[test]
204+
fn two_point_zero_serde_works() {
205+
let initial_ser = r#""2.0""#;
206+
// The fact that it was deserialized is enough.
207+
let two_point_zero: TwoPointZero = serde_json::from_str(initial_ser).unwrap();
208+
let serialized = serde_json::to_string(&two_point_zero).unwrap();
209+
assert_eq!(serialized, initial_ser);
210+
}
211+
212+
#[test]
213+
fn id_serde_works() {
214+
let test_vector = &[("42", Id::Number(42)), (r#""one""#, Id::Str("one".into())), ("null", Id::Null)];
215+
216+
for (initial_ser, expected) in test_vector {
217+
let id: Id = serde_json::from_str(initial_ser).unwrap();
218+
assert_eq!(&id, expected);
219+
let serialized = serde_json::to_string(&id).unwrap();
220+
assert_eq!(&serialized, initial_ser);
221+
}
222+
}
223+
224+
#[test]
225+
fn subscription_id_serde_works() {
226+
let test_vector = &[("42", SubscriptionId::Num(42)), (r#""one""#, SubscriptionId::Str("one".into()))];
227+
228+
for (initial_ser, expected) in test_vector {
229+
let id: SubscriptionId = serde_json::from_str(initial_ser).unwrap();
230+
assert_eq!(&id, expected);
231+
let serialized = serde_json::to_string(&id).unwrap();
232+
assert_eq!(&serialized, initial_ser);
233+
}
234+
}
235+
236+
#[test]
237+
fn params_serialize_works() {
238+
let test_vector = &[
239+
("null", JsonRpcParams::NoParams),
240+
("[42,23]", JsonRpcParams::Array(serde_json::from_str("[42,23]").unwrap())),
241+
(
242+
r#"{"a":42,"b":null,"c":"aa"}"#,
243+
JsonRpcParams::Map(serde_json::from_str(r#"{"a":42,"b":null,"c":"aa"}"#).unwrap()),
244+
),
245+
];
246+
247+
for (initial_ser, params) in test_vector {
248+
let serialized = serde_json::to_string(params).unwrap();
249+
assert_eq!(&serialized, initial_ser);
250+
}
251+
}
252+
}

0 commit comments

Comments
 (0)