rustc/vendor/handlebars/tests/helper_macro.rs
2019-05-19 01:32:59 -07:00

32 lines
812 B
Rust

#[macro_use]
extern crate handlebars;
#[macro_use]
extern crate serde_json;
use handlebars::Handlebars;
handlebars_helper!(lower: |s: str| s.to_lowercase());
handlebars_helper!(upper: |s: str| s.to_uppercase());
handlebars_helper!(hex: |v: i64| format!("0x{:x}", v));
#[test]
fn test_macro_helper() {
let mut hbs = Handlebars::new();
hbs.register_helper("lower", Box::new(lower));
hbs.register_helper("upper", Box::new(upper));
hbs.register_helper("hex", Box::new(hex));
let data = json!("Teixeira");
assert_eq!(
hbs.render_template("{{lower this}}", &data).unwrap(),
"teixeira"
);
assert_eq!(
hbs.render_template("{{upper this}}", &data).unwrap(),
"TEIXEIRA"
);
assert_eq!(hbs.render_template("{{hex 16}}", &()).unwrap(), "0x10");
}