jss-core 0.2.0

Json Simplified Schema Core Interface
Documentation
use jss_core::{JssSchema, Result};
use std::str::FromStr;

fn check_jss(jss: &str, debug: &str, json: &str) -> Result<()> {
    let jss = JssSchema::from_str(jss)?;
    assert_eq!(format!("{:#?}", jss), debug);
    assert_eq!(jss.as_json_schema(), json);
    Ok(())
}

#[test]
fn test_basic() {
    let text = include_str!("simple/basic.jss");
    let target = include_str!("simple/basic.txt");
    let json = include_str!("simple/basic.json");
    check_jss(text, target, json).unwrap();
}

#[test]
fn test_nesting() {
    let text = include_str!("simple/nesting.jss");
    let target = include_str!("simple/nesting.txt");
    let json = include_str!("simple/nesting.json");
    check_jss(text, target, json).unwrap();
}

#[test]
fn test_properties() {
    let text = include_str!("simple/properties.jss");
    let target = include_str!("simple/properties.txt");
    let json = include_str!("simple/properties.json");
    check_jss(text, target, json).unwrap();
}

#[test]
fn test_property_deeper() {
    let text = include_str!("simple/properties_deeper.jss");
    let target = include_str!("simple/properties_deeper.txt");
    let json = include_str!("simple/properties_deeper.json");
    check_jss(text, target, json).unwrap();
}

#[test]
fn test_references() {
    let text = include_str!("simple/references.jss");
    let target = include_str!("simple/references.txt");
    let json = include_str!("simple/references.json");
    check_jss(text, target, json).unwrap();
}