tdo-core 0.2.1

The core of every Rust-based tdo application
Documentation
extern crate tdo_core;


#[cfg(test)]
mod interact {
    use tdo_core::{tdo, list, todo};

    #[test]
    fn clean_lists() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        let mut tdo2 = tdo::Tdo::new();
        tdo2.add_list(list::TodoList::new("test")).unwrap();
        tdo2.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        tdo.lists[1].done_id(0).unwrap();
        tdo.clean_lists();
        assert_eq!(tdo.lists[1].list.len(), tdo2.lists[1].list.len());
    }

    #[test]
    fn clean_list() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();
        tdo.add_list(list::TodoList::new("test2")).unwrap();
        tdo.add_todo(Some("test2"), todo::Todo::new(2, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test2"), todo::Todo::new(3, "Second Entry", None)).unwrap();

        tdo.lists[1].done_id(0).unwrap();
        tdo.lists[2].done_id(2).unwrap();
        tdo.clean_list("test").unwrap();
        assert_eq!(tdo.lists[1].list.len(), 1);
        assert_eq!(tdo.lists[2].list.len(), 2);
    }

    #[test]
    fn remove_from_list() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();
        tdo.remove_id(0).unwrap();
        assert_eq!(tdo.lists[1].list.len(), 1);
    }

    #[test]
    #[should_panic]
    fn remove_not_existing_todo() {
        let mut tdo = tdo::Tdo::new();
        tdo.remove_id(0).unwrap();
    }

    #[test]
    #[should_panic]
    fn add_to_not_existing_list() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
    }

    #[test]
    fn set_done_list() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        tdo.lists[1].done_id(0).unwrap();
        assert!(tdo.lists[1].list[0].done);
    }

    #[test]
    fn clean_tdo() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        let mut tdo2 = tdo::Tdo::new();
        tdo2.add_list(list::TodoList::new("test")).unwrap();
        tdo2.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        tdo.done_id(0).unwrap();
        tdo.clean_lists();
        assert_eq!(tdo.lists[1].list.len(), tdo2.lists[1].list.len());
    }

    #[test]
    fn set_done_tdo() {
        let mut tdo = tdo::Tdo::new();
        tdo.add_list(list::TodoList::new("test")).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(0, "First Entry", None)).unwrap();
        tdo.add_todo(Some("test"), todo::Todo::new(1, "Second Entry", None)).unwrap();

        tdo.done_id(0).unwrap();
        assert!(tdo.lists[1].list[0].done);
    }

}