use rusqlite::Result as SqlResult;
use crate::core::Tree;
use crate::Nunc;
pub fn add_example_tree(nunc: &Nunc) -> SqlResult<()> {
let alpha = nunc.get_category(nunc.create_root_category("Alpha")?)?;
let beta = nunc.get_category(nunc.create_root_category("Beta")?)?;
let gamma = nunc.get_category(nunc.create_root_category("Gamma")?)?;
nunc.create_activity(&alpha, "Run")?;
let lang = nunc.get_category(nunc.create_category(&alpha, "Language")?)?;
let hobby = nunc.get_category(nunc.create_category(&alpha, "Hobby")?)?;
nunc.create_activity(&lang, "Russian")?;
nunc.create_activity(&hobby, "Chess")?;
nunc.create_activity(&beta, "Programming")?;
nunc.create_activity(&beta, "Fitness")?;
nunc.create_activity(&gamma, "Sleep")?;
nunc.create_activity(&gamma, "Eating")?;
Ok(())
}
#[test]
fn temp_db() {
assert!(Nunc::open_mem_db().is_ok());
}
#[test]
fn example_tree() -> SqlResult<()> {
let nunc = Nunc::testing().unwrap();
assert!(add_example_tree(&nunc).is_ok());
let alpha = nunc.find_category("Alpha")?.unwrap();
let beta = nunc.find_category("Beta")?.unwrap();
let gamma = nunc.find_category("Gamma")?.unwrap();
let hobby = nunc.find_category("Hobby")?.unwrap();
let language = nunc.find_category("Language")?.unwrap();
assert_eq!(nunc.resolve_path_string(&alpha.path)?, "/");
assert_eq!(nunc.resolve_path_string(&beta.path)?, "/");
assert_eq!(nunc.resolve_path_string(&gamma.path)?, "/");
assert_eq!(nunc.resolve_path_string(&language.path)?, "/Alpha/");
assert_eq!(nunc.resolve_path_string(&hobby.path)?, "/Alpha/");
nunc.find_activity("Chess")?.unwrap();
nunc.find_activity("Eating")?.unwrap();
nunc.find_activity("Fitness")?.unwrap();
nunc.find_activity("Programming")?.unwrap();
nunc.find_activity("Run")?.unwrap();
nunc.find_activity("Russian")?.unwrap();
nunc.find_activity("Sleep")?.unwrap();
Ok(())
}