extern crate scl;
use scl::{parse_file, Error};
fn assert_error_msg(filename: &str, needle: &str) {
let res = parse_file(&format!("./tests/invalid/{}.scl", filename));
assert!(res.is_err());
let err = res.unwrap_err();
match err {
Error::InvalidSyntax(msg) => {
println!("{}", msg);
assert!(msg.contains(needle));
}
}
}
#[test]
fn test_eof() {
assert_error_msg(
"eof",
"expected include or string / int / float / byte size / date / bool / array / dict / environment variable"
);
}
#[test]
fn test_invalid_int() {
assert_error_msg(
"invalid_int",
"expected a byte size unit (kB / MB / GB / TB / PB)",
);
}
#[test]
fn test_env_var_default() {
assert_error_msg(
"env_var_default",
"expected a boolean (true / false), a string, a multiline string, an integer, a float, or a date"
);
}
#[test]
fn test_invalid_key() {
assert_error_msg("invalid_key", "expected include or a key");
}
#[test]
fn test_invalid_document() {
assert_error_msg(
"invalid_doc",
"expected a key value, an include or a comment",
);
}
#[test]
fn test_invalid_date() {
assert_error_msg(
"invalid_date",
"expected a byte size unit (kB / MB / GB / TB / PB)",
);
}
#[test]
fn test_invalid_array_comment() {
assert_error_msg(
"invalid_array_comment",
"expected string / int / float / byte size / date / bool / array / dict / environment variable"
);
}