#[cfg(test)]
mod tests {
use crate::test_helpers::*;
#[test]
fn test_bif_param() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:code; {:param; 1 >> one :} {:param; 1 :} :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>one</div>");
}
#[test]
fn test_bif_param_set_outside_code() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:param; 1 >> one :}{:param; 1 :}</div>");
let result = template.render();
assert!(template.has_error());
assert_eq!(result, "<div></div>");
}
#[test]
fn test_bif_param_evaluation() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:code; {:param; {:;__test-nts:} >> {:;__test-nts:} :} {:param; {:;__test-nts:} :} :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>nts</div>");
}
#[test]
fn test_bif_param_scope() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:code; {:param; 1 >> one :} {:code; {:param; 1 :} :} :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>one</div>");
}
#[test]
fn test_bif_param_no_scope() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:code; {:param; {:;__test-nts:} >> {:;__test-nts:} :} :}{:param; {:;__test-nts:} :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div></div>");
}
#[test]
fn test_bif_param_invalid_flag() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:code; {:param; {:flg; invalid_flag :} {:;__test-nts:} >> {:;__test-nts:} :} :}{:param; {:;__test-nts:} :}</div>");
let result = template.render();
assert!(template.has_error());
assert_eq!(result, "<div></div>");
}
}