Add rountripping test for database cbor serialization.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -9,7 +9,7 @@ use tuwunel_core::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
Ignore, Interfix, de, ser,
|
Cbor, Ignore, Interfix, de, ser,
|
||||||
ser::{Json, serialize_to_vec},
|
ser::{Json, serialize_to_vec},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -204,6 +204,53 @@ fn ser_json_raw_json() {
|
|||||||
assert_eq!(&s, r#"{"event_fields":["content.body"]}"#);
|
assert_eq!(&s, r#"{"event_fields":["content.body"]}"#);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn ser_cbor() {
|
||||||
|
use tuwunel_core::ruma::api::client::filter::FilterDefinition;
|
||||||
|
|
||||||
|
let filter = FilterDefinition {
|
||||||
|
event_fields: Some(vec!["content.body".to_owned()]),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let serialized = serialize_to_vec(Cbor(&filter)).expect("failed to serialize cbor");
|
||||||
|
let deserialized: FilterDefinition = de::from_slice::<Cbor<_>>(&serialized)
|
||||||
|
.expect("failed to deserialize cbor")
|
||||||
|
.0;
|
||||||
|
|
||||||
|
assert_eq!(filter.event_fields, deserialized.event_fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg(disable)]
|
||||||
|
fn ser_cbor_ruma_raw() {
|
||||||
|
use serde_json::value::RawValue;
|
||||||
|
use tuwunel_core::ruma::api::client::filter::FilterDefinition;
|
||||||
|
|
||||||
|
struct Foo {
|
||||||
|
a: String,
|
||||||
|
b: Box<RawValue>,
|
||||||
|
}
|
||||||
|
|
||||||
|
let filter = FilterDefinition {
|
||||||
|
event_fields: Some(vec!["content.body".to_owned()]),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let foo = Foo {
|
||||||
|
a: "test".into(),
|
||||||
|
b: serde_json::value::to_raw_value(&filter).expect("failed to serialize to raw value"),
|
||||||
|
};
|
||||||
|
|
||||||
|
let serialized = serialize_to_vec(Cbor(&foo)).expect("failed to serialize cbor");
|
||||||
|
let deserialized: Foo = de::from_slice::<Cbor<_>>(&serialized)
|
||||||
|
.expect("failed to deserialize cbor")
|
||||||
|
.0;
|
||||||
|
|
||||||
|
assert_eq!(foo.a, deserialized.a);
|
||||||
|
assert_eq!(foo.a.get(), deserialized.b.get());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn de_tuple() {
|
fn de_tuple() {
|
||||||
let user_id: &UserId = "@user:example.com".try_into().unwrap();
|
let user_id: &UserId = "@user:example.com".try_into().unwrap();
|
||||||
|
|||||||
Reference in New Issue
Block a user