bin/taud: add tests to main

This commit is contained in:
ghassmo
2022-03-13 08:22:43 +04:00
parent ba1c841315
commit e7a13acea9
3 changed files with 93 additions and 53 deletions

View File

@@ -170,3 +170,92 @@ async fn main() -> Result<()> {
let ex = Arc::new(Executor::new());
smol::block_on(ex.run(start(config, ex.clone())))
}
#[cfg(test)]
mod tests {
use std::fs::create_dir_all;
use crate::{month_tasks::MonthTasks, task_info::TaskInfo};
use super::*;
fn get_path() -> Result<PathBuf> {
let path = PathBuf::from("/tmp/test_tau_data");
// mkdir dataset_path if not exists
create_dir_all(path.join("month"))?;
create_dir_all(path.join("task"))?;
Ok(path)
}
#[test]
fn load_and_save_tasks() -> Result<()> {
let settings = Settings { dataset_path: get_path()?.clone() };
// load and save TaskInfo
///////////////////////
let mut task = TaskInfo::new("test_title", "test_desc", None, 0, &settings)?;
task.save()?;
let t_load = TaskInfo::load(&task.get_ref_id(), &settings)?;
assert_eq!(task, t_load);
task.set_title("test_title_2");
task.save()?;
let t_load = TaskInfo::load(&task.get_ref_id(), &settings)?;
assert_eq!(task, t_load);
// load and save MonthTasks
///////////////////////
let task_tks = vec![];
let mut mt = MonthTasks::new(&task_tks, &settings);
mt.save()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert_eq!(mt, mt_load);
mt.add(&task.get_ref_id());
mt.save()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert_eq!(mt, mt_load);
Ok(())
}
#[test]
fn test_activate_task() -> Result<()> {
let settings = Settings { dataset_path: get_path()?.clone() };
// activate task
///////////////////////
let task = TaskInfo::new("test_title_3", "test_desc", None, 0, &settings)?;
task.save()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert!(!mt_load.get_task_tks().contains(&task.get_ref_id()));
task.activate()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert!(mt_load.get_task_tks().contains(&task.get_ref_id()));
Ok(())
}
}

View File

@@ -56,6 +56,10 @@ impl MonthTasks {
self.created_at = date.clone();
}
pub fn get_task_tks(&self) -> Vec<String> {
self.task_tks.clone()
}
fn get_path(date: &Timestamp, settings: &Settings) -> PathBuf {
settings
.dataset_path

View File

@@ -104,57 +104,4 @@ mod tests {
Ok(())
}
#[test]
fn load_and_save_data() -> Result<()> {
let path = PathBuf::from("/tmp/test_tau_data");
// mkdir dataset_path if not exists
create_dir_all(path.join("month"))?;
create_dir_all(path.join("task"))?;
let settings = Settings { dataset_path: path.clone() };
// test with TaskInfo
///////////////////////
let mut task = TaskInfo::new("test_title", "test_desc", None, 0, &settings)?;
task.save()?;
let t_load = TaskInfo::load(&task.get_ref_id(), &settings)?;
assert_eq!(task, t_load);
task.set_title("test_title_2");
task.save()?;
let t_load = TaskInfo::load(&task.get_ref_id(), &settings)?;
assert_eq!(task, t_load);
// test with MonthTasks
///////////////////////
let task_tks = vec![];
let mut mt = MonthTasks::new(&task_tks, &settings);
mt.save()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert_eq!(mt, mt_load);
mt.add(&task.get_ref_id());
mt.save()?;
let mt_load = MonthTasks::load_or_create(&get_current_time(), &settings)?;
assert_eq!(mt, mt_load);
Ok(())
}
}