use crate::testing_prelude::*;
#[test]
fn timestamp_serialize_offset() {
let timestamp = TimeStamp::from_rfc3339("2024-10-18T12:34:56+01:30").unwrap();
let serialized = serde_json::to_string(×tamp).unwrap();
assert_eq!(serialized, "\"2024-10-18T11:04:56Z\"");
}
#[test]
fn timestamp_serialize_zulu() {
let timestamp = TimeStamp::from_rfc3339("2024-10-18T12:34:56Z").unwrap();
let serialized = serde_json::to_string(×tamp).unwrap();
assert_eq!(serialized, "\"2024-10-18T12:34:56Z\"");
}
#[test]
fn timestamp_deserialize_offset() {
let json = "\"2024-10-18T12:34:56-02:30\"";
let deserialized: TimeStamp = serde_json::from_str(json).unwrap();
let expected = TimeStamp::from_rfc3339("2024-10-18T12:34:56-02:30").unwrap();
assert_eq!(deserialized, expected);
}
#[test]
fn timestamp_round_trip() {
let timestamp = TimeStamp::from_rfc3339("2024-10-18T12:34:56-02:30").unwrap();
let serialized = serde_json::to_string(×tamp).unwrap();
let deserialized: TimeStamp = serde_json::from_str(&serialized).unwrap();
assert_eq!(timestamp, deserialized);
}
#[test]
fn timestamp_deserialize_invalid_format() {
let invalid_json = "\"invalid-date-format\"";
let result: Result<TimeStamp, _> = serde_json::from_str(invalid_json);
assert!(
result.is_err(),
"Deserialization should fail with invalid date format"
);
}