mod utils; use eyre::Result; use ion_binary_rs::IonValue; use std::collections::HashMap; use utils::create_type_test; #[async_std::test] async fn qldb_type_datetime() -> Result<()> { create_type_test(get_value_to_insert_dates(), |values| { assert_eq!( values.get("2011-01-01T00:00:00+00:00").unwrap(), &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-01-01T00:00:00+00:00").unwrap()) ); assert_eq!( values.get("2011-02-01T00:00:00+00:00").unwrap(), &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-01T00:00:00+00:00").unwrap()) ); assert_eq!( values.get("2011-02-20T00:00:00+00:00").unwrap(), &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T00:00:00+00:00").unwrap()) ); assert_eq!( values.get("2011-02-20T11:30:59.100-08:00").unwrap(), &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T11:30:59.100-08:00").unwrap()) ); }) .await } fn get_value_to_insert_dates() -> IonValue { let mut map = HashMap::new(); map.insert( "2011-01-01T00:00:00+00:00".into(), IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-01-01T00:00:00+00:00").unwrap()), ); map.insert( "2011-02-01T00:00:00+00:00".into(), IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-01T00:00:00+00:00").unwrap()), ); map.insert( "2011-02-20T00:00:00+00:00".into(), IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T00:00:00+00:00").unwrap()), ); map.insert( "2011-02-20T11:30:59.100-08:00".into(), IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T11:30:59.100-08:00").unwrap()), ); IonValue::Struct(map) }