nunc 0.2.0

WIP: time tracking application
Documentation
use rusqlite::Result as SqlResult;

use crate::core::Tree;
use crate::Nunc;

/**
```text
Alpha
    - Run
    Language
        - Russian
    Hobby
        - Chess
Beta
    - Programming
    - Fitness
Gamma
    - Sleep
    - Eating
```
*/
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")?)?;

	// Alpha
	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")?)?;

	// Alpha/Language
	nunc.create_activity(&lang, "Russian")?;
	// Alpha/Hobby
	nunc.create_activity(&hobby, "Chess")?;


	// Beta
	nunc.create_activity(&beta, "Programming")?;
	nunc.create_activity(&beta, "Fitness")?;

	// Gamma
	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(())
}