use dbx_core::Database;
use tempfile::NamedTempFile;
fn main() -> dbx_core::DbxResult<()> {
println!("๐งช Testing In-Memory DB Save/Load Functionality (KV API)\n");
test_kv_save_load()?;
println!("\nโ
All tests passed!");
Ok(())
}
fn test_kv_save_load() -> dbx_core::DbxResult<()> {
println!("๐ Test: KV API save and load");
let temp_file = NamedTempFile::new().unwrap();
{
let db = Database::open_in_memory()?;
db.insert("users", b"user:1", b"Alice")?;
db.insert("users", b"user:2", b"Bob")?;
db.insert("products", b"prod:1", b"Laptop")?;
println!(" โ Inserted 3 key-value pairs");
db.flush()?;
println!(" โ Flushed data to WOS");
db.save_to_file(temp_file.path())?;
println!(" โ Saved database to file");
}
{
let db = Database::load_from_file(temp_file.path())?;
println!(" โ Loaded database from file");
let value1 = db.get("users", b"user:1")?;
let value2 = db.get("users", b"user:2")?;
let value3 = db.get("products", b"prod:1")?;
assert_eq!(value1, Some(b"Alice".to_vec()), "Expected Alice");
assert_eq!(value2, Some(b"Bob".to_vec()), "Expected Bob");
assert_eq!(value3, Some(b"Laptop".to_vec()), "Expected Laptop");
println!(" โ All data verified correctly");
}
println!(" โ
Test passed\n");
Ok(())
}