From d16421708d57221595da1ff0a92f9884f76847a3 Mon Sep 17 00:00:00 2001 From: daniel Date: Sat, 7 Nov 2020 11:57:07 +0100 Subject: [PATCH] test some error types --- src/lib.rs | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index f3c65d8..b78e003 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -127,7 +127,7 @@ impl std::error::Error for Error {} type Result = std::result::Result; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq)] pub enum FileMode { Write, Append, @@ -468,4 +468,50 @@ mod tests { assert_eq!(new_frame.box_vector, frame.box_vector); assert_eq!(new_frame.coords, frame.coords); } + + #[test] + fn test_err_could_not_open() { + let file_name = "non-existent.xtc"; + let path = Path::new(&file_name); + if let Err(e) = XDRFile::open(path, FileMode::Read) { + match e { + Error::CouldNotOpenFile(err_path, err_mode) => { + assert_eq!(path, err_path); + assert!(FileMode::Read == err_mode) + } + _ => panic!("Wrong Error type"), + } + } + } + + #[test] + fn test_err_could_not_read_atom_nr() { + let file_name = "README.md"; // not a trajectory + let path = Path::new(&file_name); + let mut trr = TRRTrajectory::open(path, FileMode::Read).unwrap(); + if let Err(e) = trr.get_num_atoms() { + match e { + Error::CouldNotReadAtomNumber(code) => { + assert_eq!(xdrfile::exdrMAGIC, code); + } + _ => panic!("Wrong Error type"), + } + } + } + + #[test] + fn test_err_could_not_read() { + let file_name = "README.md"; // not a trajectory + let path = Path::new(&file_name); + let mut frame = Frame::with_capacity(1); + let mut trr = TRRTrajectory::open(path, FileMode::Read).unwrap(); + if let Err(e) = trr.read(&mut frame) { + match e { + Error::CouldNotRead(code) => { + assert_eq!(xdrfile::exdrMAGIC, code); + } + _ => panic!("Wrong Error type"), + } + } + } }