test: improved test coverage

This commit is contained in:
Elias Renman
2023-05-07 15:50:54 +02:00
parent dca16f5936
commit ccc49b241d

View File

@@ -29,4 +29,53 @@ mod index_test {
println!("Found Row: {}", pretty_print.unwrap());
}
}
#[test]
fn should_create_reverse_index() {
let indexes = hashmap!["race" => Index::new("race".to_string(), Some(true), Some(false))];
let mut table: Table = Table::new("Cats", "id", Some(indexes));
let _ = table.insert_row(row!["id" => 1, "name" => "Ozzy", "race" => "cat"]);
_ = table.insert_row(row!["id" => 2, "name" => "Simon", "race" => "cat"]);
_ = table.insert_row(row!["id" => 3, "name" => "Gosa", "race" => "dog"]);
let result = table.get_pks_by_index("race".to_string(), json!("cat"));
assert_eq!(result.is_ok(), true);
let ids = result.unwrap();
assert_eq!(ids, vec![2, 1]);
}
#[test]
fn should_create_unique_index_and_fail_insert() {
let indexes = hashmap!["race" => Index::new("race".to_string(), Some(false), Some(true))];
let mut table: Table = Table::new("Cats", "id", Some(indexes));
let _ = table.insert_row(row!["id" => 1, "name" => "Ozzy", "race" => "cat"]);
_ = table.insert_row(row!["id" => 3, "name" => "Gosa", "race" => "dog"]);
let err = table.insert_row(row!["id" => 2, "name" => "Simon", "race" => "cat"]);
assert_eq!(err.is_err(), true);
}
#[test]
fn should_create_unique_index() {
let indexes = hashmap!["race" => Index::new("race".to_string(), Some(false), Some(true))];
let mut table: Table = Table::new("Cats", "id", Some(indexes));
let _ = table.insert_row(row!["id" => 1, "name" => "Ozzy", "race" => "cat"]);
_ = table.insert_row(row!["id" => 3, "name" => "Gosa", "race" => "dog"]);
let result = table.get_pks_by_index("race".to_string(), json!("cat"));
assert_eq!(result.is_ok(), true);
let ids = result.unwrap();
assert_eq!(ids, vec![1]);
let result = table.get_pks_by_index("race".to_string(), json!("dog"));
assert_eq!(result.is_ok(), true);
let ids = result.unwrap();
assert_eq!(ids, vec![3]);
}
}