46 lines
918 B
Rust
46 lines
918 B
Rust
use naive_json_parser::*;
|
|
|
|
#[test]
|
|
fn sanity_check() {
|
|
let res = JSON::parse(r#"-q"#);
|
|
assert_eq!(
|
|
res,
|
|
Err(ParseError::ExpectedDigit(String::from(
|
|
"Expected a digit, received 'q' after numeric '-'"
|
|
)))
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn bad_object_trailing_comma() {
|
|
let res = JSON::parse("{,}");
|
|
assert_eq!(
|
|
res,
|
|
Err(ParseError::ExpectedObjectKey(String::from(
|
|
"Expected an object key. Does the object have a trailing comma?"
|
|
)))
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn bad_json() {
|
|
let res = JSON::parse(r#"5eq"#);
|
|
assert!(res.is_err());
|
|
}
|
|
|
|
#[test]
|
|
fn empty_json() {
|
|
let res: JSONResult = JSON::parse("");
|
|
assert_eq!(
|
|
res,
|
|
Err(ParseError::UnexpectedEndOfInput(String::from("Empty input")))
|
|
)
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn invalid_unwrap() {
|
|
let wrapped = JSONValue::from(5.2f64);
|
|
let _: String = wrapped.unwrap();
|
|
}
|