public void JmesPathOrExpression_Override() { var expression = new JmesPathOrExpression( new JmesPathIdentifier("override"), new JmesPathIndexExpression( new JmesPathIdentifier("mylist"), new JmesPathIndex(-1) ) ); Assert(expression, "{\"mylist\": [\"one\", \"two\"]}", "\"two\""); Assert(expression, "{\"mylist\": [\"one\", \"two\"], \"override\": \"yes\"}", "\"yes\""); }
private void OnOrExpression() { Prolog(); System.Diagnostics.Debug.Assert(expressions_.Count >= 2); var right = expressions_.Pop(); var left = expressions_.Pop(); var expression = new JmesPathOrExpression(left, right); expressions_.Push(expression); }
public void JmesPathOrExpression_Or() { var expression = new JmesPathOrExpression( new JmesPathIdentifier("foo"), new JmesPathIdentifier("bar") ); Assert(expression, "{\"foo\": \"foo-value\"}", "\"foo-value\""); Assert(expression, "{\"bar\": \"bar-value\"}", "\"bar-value\""); Assert(expression, "{\"foo\": \"foo-value\", \"bar\": \"bar-value\"}", "\"foo-value\""); Assert(expression, "{\"baz\": \"baz-value\"}", "null"); expression = new JmesPathOrExpression( new JmesPathIdentifier("foo"), new JmesPathOrExpression( new JmesPathIdentifier("bar"), new JmesPathIdentifier("baz") )); Assert(expression, "{\"baz\": \"baz-value\"}", "\"baz-value\""); }