#[cfg(test)]
pub mod tests {
use crate::objects::blueprint::Blueprint;
use crate::objects::object::{Object, ObjectTypes};
use crate::persistence::project::Project;
use crate::types::location::FolderPosition;
#[test]
fn open_project_on_filesystem() {
let project = Project::open("open_project_on_filesystem.db");
assert!(project.is_ok());
let project = project.unwrap();
std::fs::remove_file(project.get_path().unwrap()).unwrap();
std::mem::forget(project);
}
#[test]
fn open_project_in_memory() -> Result<(), Box<dyn std::error::Error>> {
Project::open_in_memory()?;
Ok(())
}
#[test]
fn close_project() -> Result<(), Box<dyn std::error::Error>> {
let project = Project::open_in_memory()?;
project.close()?;
Ok(())
}
#[test]
fn delete_project() -> Result<(), Box<dyn std::error::Error>> {
let project = Project::open("delete_project.db")?;
let path = project.get_path().cloned();
project.delete()?;
assert!(path.is_some_and(|v| !v.exists()));
Ok(())
}
#[test]
fn delete_project_in_memory() -> Result<(), Box<dyn std::error::Error>> {
let project = Project::open_in_memory()?;
project.delete()?;
Ok(())
}
#[test]
fn project_get_objects() -> Result<(), Box<dyn std::error::Error>> {
let project = Project::open_in_memory()?;
assert_eq!(
project.get_objects(ObjectTypes::all())?,
Vec::<Object>::new()
);
let blueprint = Blueprint::new(
project.db.clone(),
None,
FolderPosition::StartOfFolder,
"test",
"test",
)?;
assert_eq!(project.get_objects(ObjectTypes::all())?, vec![blueprint]);
Ok(())
}
}