mirror of
https://github.com/eliasrenman/r-database.git
synced 2026-03-16 20:46:08 +01:00
test: improved test coverage
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user