task_diff 0.2.1

Create Terraform AWS Container Definition diffs
Documentation
#[macro_use]
extern crate serde_json;

extern crate task_diff;
use task_diff::pair::{parse_environment, replace_in_tree};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn parse_environment_array() {
        let env = json!([
            {"name": "foo", "value": "bar"},
            {"name": "baz", "value": "qux"},
        ]);
        let result = json!({
            "foo": "bar",
            "baz": "qux",
        });
        assert_eq!(parse_environment(&env).unwrap(), result);
    }

    #[test]
    fn replace_in_object_tree() {
        let env = json!({
            "environment": [
                {"name": "foo", "value": "bar"},
                {"name": "baz", "value": "qux"},
            ]
        });
        let result = json!({
            "environment": {
                "foo": "bar",
                "baz": "qux",
            }
        });
        assert_eq!(
            replace_in_tree("environment", env, parse_environment).unwrap(),
            result
        );
    }

    #[test]
    fn replace_in_array_tree() {
        let env = json!([{
            "environment": [
                {"name": "foo", "value": "bar"},
                {"name": "baz", "value": "qux"},
            ]
        }]);
        let result = json!([{
            "environment": {
                "foo": "bar",
                "baz": "qux",
            }
        }]);
        assert_eq!(
            replace_in_tree("environment", env, parse_environment).unwrap(),
            result
        );
    }
}