mod utils;
use eyre::Result;
use ion_binary_rs::{IonValue, NullIonValue};
use std::collections::HashMap;
use utils::create_type_test;
#[async_std::test]
async fn qldb_type_nulls() -> Result<()> {
create_type_test(get_value_to_insert_nulls(), |values| {
assert_eq!(values.get("Null").unwrap(), &IonValue::Null(NullIonValue::Null));
assert_eq!(values.get("Bool").unwrap(), &IonValue::Null(NullIonValue::Bool));
assert_eq!(values.get("Integer").unwrap(), &IonValue::Null(NullIonValue::Integer));
assert_eq!(values.get("Float").unwrap(), &IonValue::Null(NullIonValue::Float));
assert_eq!(values.get("Decimal").unwrap(), &IonValue::Null(NullIonValue::Decimal));
assert_eq!(values.get("DateTime").unwrap(), &IonValue::Null(NullIonValue::DateTime));
assert_eq!(values.get("String").unwrap(), &IonValue::Null(NullIonValue::String));
assert_eq!(values.get("Symbol").unwrap(), &IonValue::Null(NullIonValue::Symbol));
assert_eq!(values.get("Clob").unwrap(), &IonValue::Null(NullIonValue::Clob));
assert_eq!(values.get("Blob").unwrap(), &IonValue::Null(NullIonValue::Blob));
assert_eq!(values.get("List").unwrap(), &IonValue::Null(NullIonValue::List));
assert_eq!(values.get("SExpr").unwrap(), &IonValue::Null(NullIonValue::SExpr));
assert_eq!(values.get("Struct").unwrap(), &IonValue::Null(NullIonValue::Struct));
})
.await
}
fn get_value_to_insert_nulls() -> IonValue {
let mut map = HashMap::new();
map.insert("Null".into(), IonValue::Null(NullIonValue::Null));
map.insert("Bool".into(), IonValue::Null(NullIonValue::Bool));
map.insert("Integer".into(), IonValue::Null(NullIonValue::Integer));
map.insert("Float".into(), IonValue::Null(NullIonValue::Float));
map.insert("Decimal".into(), IonValue::Null(NullIonValue::Decimal));
map.insert("DateTime".into(), IonValue::Null(NullIonValue::DateTime));
map.insert("String".into(), IonValue::Null(NullIonValue::String));
map.insert("Symbol".into(), IonValue::Null(NullIonValue::Symbol));
map.insert("Clob".into(), IonValue::Null(NullIonValue::Clob));
map.insert("Blob".into(), IonValue::Null(NullIonValue::Blob));
map.insert("List".into(), IonValue::Null(NullIonValue::List));
map.insert("SExpr".into(), IonValue::Null(NullIonValue::SExpr));
map.insert("Struct".into(), IonValue::Null(NullIonValue::Struct));
IonValue::Struct(map)
}