rudimentary test for db queries

feat/vaults
Tomáš Mládek 2022-03-28 17:34:11 +02:00
parent c0d91060d5
commit 78b6bac7aa
No known key found for this signature in database
GPG Key ID: 65E225C8B3E2ED8A
1 changed files with 47 additions and 0 deletions

View File

@ -445,4 +445,51 @@ mod test {
assert!(result.is_ok());
assert!(result.unwrap().new);
}
#[test]
fn test_query() {
let tempdir = TempDir::new().unwrap();
let result = UpEndDatabase::open(&tempdir, None, false).unwrap();
let db = result.db;
let connection = db.connection().unwrap();
let random_entity = Address::Uuid(uuid::Uuid::new_v4());
upend_insert_val!(connection, random_entity, LABEL_ATTR, "FOOBAR").unwrap();
upend_insert_val!(connection, random_entity, "FLAVOUR", "STRANGE").unwrap();
let query = format!(r#"(matches "{random_entity}" ? ?)"#)
.parse()
.unwrap();
let result = connection.query(query).unwrap();
assert_eq!(result.len(), 2);
let other_entity = Address::Uuid(uuid::Uuid::new_v4());
upend_insert_val!(connection, random_entity, LABEL_ATTR, "BAZQUX").unwrap();
upend_insert_val!(connection, random_entity, "CHARGE", "POSITIVE").unwrap();
let query = format!(r#"(matches (in "{random_entity}" "{other_entity}") ? ?)"#)
.parse()
.unwrap();
let result = connection.query(query).unwrap();
assert_eq!(result.len(), 4);
let query = format!(r#"(matches ? (in "FLAVOUR" "CHARGE") ?)"#)
.parse()
.unwrap();
let result = connection.query(query).unwrap();
assert_eq!(result.len(), 2);
// let query = format!("(matches ? \"{LABEL_ATTR}\" (in \"FOOBAR\" \"BAZQUX\"))")
// .parse()
// .unwrap();
// let result = connection.query(query).unwrap();
// assert_eq!(result.len(), 2);
let query = format!(r#"(matches ? "{LABEL_ATTR}" (contains "OOBA"))"#)
.parse()
.unwrap();
let result = connection.query(query).unwrap();
assert_eq!(result.len(), 1);
}
}