Files
RuDS/crates/bds-core/tests/support/mod.rs

35 lines
825 B
Rust

use std::fs;
use std::ops::Deref;
use std::path::PathBuf;
use bds_core::db::Database;
use tempfile::TempDir;
pub struct FixtureDatabase {
database: Database,
_directory: TempDir,
}
impl Deref for FixtureDatabase {
type Target = Database;
fn deref(&self) -> &Self::Target {
&self.database
}
}
pub fn fixture_database() -> FixtureDatabase {
let source = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
.join("../../fixtures/compatibility-projects/rfc1437-sample");
let directory = TempDir::new().unwrap();
for name in ["bds.db", "bds.db-shm", "bds.db-wal"] {
fs::copy(source.join(name), directory.path().join(name)).unwrap();
}
FixtureDatabase {
database: Database::open(&directory.path().join("bds.db")).unwrap(),
_directory: directory,
}
}