use dce_macro::{err_priv_msg, err_pub_msg, priv_msg, pub_msg};
use dce_util::result::{DceResult};
#[test]
fn test_err() {
let e = pub_msg!("pub with code 0");
assert_eq!(e.code, 0);
let code = 100;
let e = pub_msg!(code, "pub with code {}", code);
assert_eq!(e.code, code);
let e = priv_msg!("priv with code 0");
assert_eq!(e.public, false);
let e: DceResult<()> = err_pub_msg!("err wrapped pub with code 0");
assert!(e.is_err());
let code = 1024;
let e: DceResult<()> = err_priv_msg!("err wrapped priv with code {}", code);
assert!(e.is_err());
assert_eq!(e.unwrap_err().body.to_string(), "err wrapped priv with code 1024");
}