diff --git a/bin/taud/src/main.rs b/bin/taud/src/main.rs index e47bb69c8..36aa787ab 100644 --- a/bin/taud/src/main.rs +++ b/bin/taud/src/main.rs @@ -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 { + 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(()) + } +} diff --git a/bin/taud/src/month_tasks.rs b/bin/taud/src/month_tasks.rs index 2afe24c24..4123c20bf 100644 --- a/bin/taud/src/month_tasks.rs +++ b/bin/taud/src/month_tasks.rs @@ -56,6 +56,10 @@ impl MonthTasks { self.created_at = date.clone(); } + pub fn get_task_tks(&self) -> Vec { + self.task_tks.clone() + } + fn get_path(date: &Timestamp, settings: &Settings) -> PathBuf { settings .dataset_path diff --git a/bin/taud/src/util.rs b/bin/taud/src/util.rs index 5818c8c08..5a079760e 100644 --- a/bin/taud/src/util.rs +++ b/bin/taud/src/util.rs @@ -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(()) - } }