62 lines
1.9 KiB
Rust
62 lines
1.9 KiB
Rust
mod test_data;
|
|
use cloudevents::message::{BinaryDeserializer, Result, StructuredDeserializer};
|
|
|
|
use cloudevents::{AttributesReader, EventBuilder, EventBuilderV03, EventBuilderV10};
|
|
use test_data::*;
|
|
|
|
#[test]
|
|
fn message_v03_roundtrip_structured() -> Result<()> {
|
|
assert_eq!(
|
|
v03::full_json_data(),
|
|
StructuredDeserializer::into_event(v03::full_json_data())?
|
|
);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn message_v03_roundtrip_binary() -> Result<()> {
|
|
//TODO this code smells because we're missing a proper way in the public APIs
|
|
// to destructure an event and rebuild it
|
|
let wanna_be_expected = v03::full_json_data();
|
|
let data: serde_json::Value = wanna_be_expected.try_get_data()?.unwrap();
|
|
let bytes = serde_json::to_vec(&data)?;
|
|
let expected = EventBuilderV03::from(wanna_be_expected.clone())
|
|
.data(wanna_be_expected.get_datacontenttype().unwrap(), bytes)
|
|
.build()
|
|
.unwrap();
|
|
|
|
assert_eq!(
|
|
expected,
|
|
BinaryDeserializer::into_event(v03::full_json_data())?
|
|
);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn message_v10_roundtrip_structured() -> Result<()> {
|
|
assert_eq!(
|
|
v10::full_json_data(),
|
|
StructuredDeserializer::into_event(v10::full_json_data())?
|
|
);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn message_v10_roundtrip_binary() -> Result<()> {
|
|
//TODO this code smells because we're missing a proper way in the public APIs
|
|
// to destructure an event and rebuild it
|
|
let wanna_be_expected = v10::full_json_data();
|
|
let data: serde_json::Value = wanna_be_expected.try_get_data()?.unwrap();
|
|
let bytes = serde_json::to_vec(&data)?;
|
|
let expected = EventBuilderV10::from(wanna_be_expected.clone())
|
|
.data(wanna_be_expected.get_datacontenttype().unwrap(), bytes)
|
|
.build()
|
|
.unwrap();
|
|
|
|
assert_eq!(
|
|
expected,
|
|
BinaryDeserializer::into_event(v10::full_json_data())?
|
|
);
|
|
Ok(())
|
|
}
|