Przeglądaj źródła

bin/taud: add tests to main

ghassmo 4 lat temu
rodzic
commit
e7a13acea9
3 zmienionych plików z 93 dodań i 53 usunięć
  1. 89 0
      bin/taud/src/main.rs
  2. 4 0
      bin/taud/src/month_tasks.rs
  3. 0 53
      bin/taud/src/util.rs

+ 89 - 0
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<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(())
+    }
+}

+ 4 - 0
bin/taud/src/month_tasks.rs

@@ -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

+ 0 - 53
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(())
-    }
 }