rudimentary test for db queries
parent
c0d91060d5
commit
78b6bac7aa
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue