From 1c02fabe7d0e47b5b00ba7fc2cfc776246802475 Mon Sep 17 00:00:00 2001 From: Kiyomichi Kosaka Date: Mon, 28 Nov 2022 17:54:11 +0000 Subject: [PATCH] Add some test cases --- src/repl.rs | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/repl.rs b/src/repl.rs index 0c0a6b0..0cc783f 100644 --- a/src/repl.rs +++ b/src/repl.rs @@ -129,15 +129,33 @@ mod tests { fn exec_cmds_basic() { let lk = Rc::new(RefCell::new(LK { db: HashMap::new() })); assert_eq!(LKEval::new(Command::Ls, lk.clone()).eval(), LKPrint::new(vec![], false, lk.clone())); - let pwd = Rc::new(RefCell::new(Password { name: Rc::new("t1".to_string()), - prefix: None, - length: None, - mode: Mode::Regular, - seq: 99, - date: NaiveDate::from_ymd_opt(2022, 12, 30).unwrap(), - comment: Some("comment".to_string()), - parent: None })); - assert_eq!(LKEval::new(Command::Add(pwd.clone()), lk.clone()).eval().state.borrow().db, - { let mut db = HashMap::new(); db.insert(pwd.borrow().name.clone(), pwd.clone()); db }); + let pwd1 = Rc::new(RefCell::new(Password { name: Rc::new("t1".to_string()), + prefix: None, length: None, + mode: Mode::Regular, seq: 99, + date: NaiveDate::from_ymd_opt(2022, 12, 30).unwrap(), + comment: Some("comment".to_string()), + parent: None })); + assert_eq!(LKEval::new(Command::Add(pwd1.clone()), lk.clone()).eval().state.borrow().db, + { let mut db = HashMap::new(); + db.insert(pwd1.borrow().name.clone(), pwd1.clone()); + db }); + assert_eq!(LKEval::new(Command::Ls, lk.clone()).eval(), + LKPrint::new(vec!["t1 R 99 2022-12-30 comment"], false, lk.clone())); + assert_eq!(LKEval::new(Command::Quit, lk.clone()).eval(), + LKPrint::new(vec!["Bye"], true, lk.clone())); + let pwd2 = Rc::new(RefCell::new(Password { name: Rc::new("t2".to_string()), + prefix: None, length: None, + mode: Mode::Regular, seq: 99, + date: NaiveDate::from_ymd_opt(2022, 12, 31).unwrap(), + comment: Some("bli blup".to_string()), + parent: None })); + assert_eq!(LKEval::new(Command::Add(pwd2.clone()), lk.clone()).eval().state.borrow().db, + { let mut db = HashMap::new(); + db.insert(pwd1.borrow().name.clone(), pwd1.clone()); + db.insert(pwd2.borrow().name.clone(), pwd2.clone()); + db }); + assert_eq!(LKEval::new(Command::Ls, lk.clone()).eval(), + LKPrint::new(vec!["t1 R 99 2022-12-30 comment", + "t2 R 99 2022-12-31 bli blup"], false, lk.clone())); } } \ No newline at end of file