diff options
Diffstat (limited to 'core/src/macros.rs')
-rw-r--r-- | core/src/macros.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/core/src/macros.rs b/core/src/macros.rs new file mode 100644 index 0000000..f820ec4 --- /dev/null +++ b/core/src/macros.rs @@ -0,0 +1,52 @@ + +#[cfg(test)] +macro_rules! assert_not { + //direct forward + `!` + ($($t:tt)*) => (assert!(! $($t)*)); +} + +#[cfg(test)] +macro_rules! assert_ok { + ($val:expr) => ({ + match $val { + Ok(res) => res, + Err(err) => panic!( "expected Ok(..) got Err({:?})", err) + } + }); + ($val:expr, $ctx:expr) => ({ + match $val { + Ok( res ) => res, + Err(err) => panic!( "expected Ok(..) got Err({:?}) [ctx: {:?}]", err, $ctx) + } + }); +} + +#[cfg(test)] +macro_rules! assert_err { + ($val:expr) => ({ + match $val { + Ok( val ) => panic!( "expected Err(..) got Ok({:?})", val), + Err( err ) => err, + } + }); + ($val:expr, $ctx:expr) => ({ + match $val { + Ok( val ) => panic!( "expected Err(..) got Ok({:?}) [ctx: {:?}]", val, $ctx), + Err( err ) => err, + } + }); +} + +#[cfg(test)] +macro_rules! test { + ($name:ident, $code:block) => ( + #[test] + fn $name() { + let catch_block = || -> Result<(), ::error::MailError> { + $code; + Ok(()) + }; + (catch_block)().unwrap(); + } + ); +}
\ No newline at end of file |