glop 0.2.5

Glue Language for OPerations
Documentation
#![cfg(test)]

use super::grammar;

#[test]
fn round_trip_simple() {
    let src = r#"when (message init) {
    var set installed false;
    var set initialized true;
}

when (installed == false, initialized == true) {
    script #!/bin/bash
set -ex
echo "hello world"
!#
    var set installed true;
}

when (message config, is_set initialized) {
}

when (message foo, initialized != baz) {
    var set has_foo true;
    var unset bar;
}

"#;
    let g = grammar::glop(src).unwrap();
    assert_eq!(format!("{}", g), src);
}

#[test]
fn err_empty() {
    assert!(grammar::glop("").is_err());
}

#[test]
fn err_empty_conditions() {
    assert!(grammar::glop(r#"when () { set foo bar; }"#).is_err());
}

#[test]
fn err_empty_actions() {
    assert!(grammar::glop(r#"when (foo == "bar") { }"#).is_ok());
    assert!(grammar::glop(r#"when (foo == "bar")"#).is_err());
}