use hypo::Render;
#[macro_export]
macro_rules! assert_render {
($hypo:expr, $ex:literal) => {{
let mut s = String::new();
$hypo.render(&mut s);
assert_eq!(s, $ex);
}};
}
#[test]
fn char() {
assert_render!('!', "!");
assert_render!('<', "<");
assert_render!('>', ">");
assert_render!('&', "&");
assert_render!('"', """);
assert_render!('\'', "'");
}
#[test]
fn str() {
assert_render!("oiblz", "oiblz");
assert_render!(
"<p>'\"bl&z\"'</p>",
"<p>'"bl&z"'</p>"
);
}
#[test]
fn string() {
assert_render!(String::from("oiblz"), "oiblz");
assert_render!(
String::from("<p>'\"bl&z\"'</p>"),
"<p>'"bl&z"'</p>"
);
}
#[test]
fn numbers() {
assert_render!(0u8, "0");
assert_render!(1i8, "1");
assert_render!(2u16, "2");
assert_render!(3i16, "3");
assert_render!(4u32, "4");
assert_render!(5i32, "5");
assert_render!(6u64, "6");
assert_render!(7i64, "7");
assert_render!(8u128, "8");
assert_render!(9i128, "9");
assert_render!(0usize, "0");
assert_render!(1isize, "1");
}
#[test]
fn option() {
assert_render!(None::<&str>, "");
assert_render!(Some("oiblz"), "oiblz");
}
#[test]
fn result() {
assert_render!(Err::<&str, _>("oi"), "oi");
assert_render!(Ok::<_, &str>("blz"), "blz");
}
#[test]
fn slice() {
assert_render!(&["oi", "blz"] as &[_], "oiblz");
}
#[test]
fn array() {
assert_render!(["oi", "blz"], "oiblz");
}
#[test]
fn vec() {
assert_render!(vec!["oi", "blz"], "oiblz");
}
#[test]
fn tuples() {
assert_render!((), "");
assert_render!(("0",), "0");
assert_render!(("0", "1"), "01");
assert_render!(("0", "1", "2"), "012");
assert_render!(("0", "1", "2", "3"), "0123");
assert_render!(("0", "1", "2", "3", "4"), "01234");
assert_render!(("0", "1", "2", "3", "4", "5"), "012345");
assert_render!(("0", "1", "2", "3", "4", "5", "6"), "0123456");
assert_render!(("0", "1", "2", "3", "4", "5", "6", "7"), "01234567");
}
#[test]
fn raw() {
use hypo::Raw;
assert_render!(Raw("<p>oiblz</p>"), "<p>oiblz</p>");
}
#[test]
fn r#fn() {
use hypo::Fn;
assert_render!(Fn(|s: &mut String| s.push_str("oiblz")), "oiblz");
}