public void Interpreter_WalkFiltered_IsInvoked_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => o = true); var objList = new List <string> { "string1", "string2" }; var isInvoked = false; mockJsonPathValueSystem.Setup(o => o.IsObject(It.IsAny <object>())).Returns(true); mockJsonPathValueSystem.Setup(o => o.GetMembers(It.IsAny <object>())) .Callback(() => isInvoked = true) .Returns(objList); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("?(asd);", new object(), "test_path;"); //--------------------------Assert---------------------------- Assert.AreEqual(eval, interpreter._eval); Assert.AreEqual(output, interpreter._output); Assert.IsTrue(isInvoked); }
public Interpreter(JsonPathResultAccumulator output, IJsonPathValueSystem valueSystem, JsonPathScriptEvaluator eval) { Debug.Assert(output != null); this.output = output; this.eval = eval != null ? eval : new JsonPathScriptEvaluator(NullEval); this.system = valueSystem != null ? valueSystem : defaultValueSystem; }
public Interpreter(JsonPathResultAccumulator output, IJsonPathValueSystem valueSystem, JsonPathScriptEvaluator eval) { Debug.Assert(output != null); _output = output; _eval = eval ?? NullEval; _system = valueSystem ?? DefaultValueSystem; }
public void Interpreter_Trace_Expr_IsNull_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "test_test"); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); var obj = new object(); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes(null, obj, "test_path"); //--------------------------Assert---------------------------- Assert.AreEqual(output, interpreter._output); }
public void Interpreter_Trace_Walk_SystemIsPrimitive_True_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "test_test"); var obj = new object(); mockJsonPathValueSystem.Setup(o => o.IsPrimitive(It.IsAny <object>())).Returns(true); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("*;", obj, "test_path"); //--------------------------Assert---------------------------- mockJsonPathValueSystem.Verify(o => o.IsPrimitive(It.IsAny <object>()), Times.Once); }
public void Interpreter_Trace_SystemHasMember_True_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "test_test"); var obj = new object(); mockJsonPathValueSystem.Setup(o => o.HasMember(It.IsAny <object>(), It.IsAny <string>())).Returns(true); mockJsonPathValueSystem.Setup(o => o.GetMemberValue(It.IsAny <object>(), It.IsAny <string>())).Returns("test_member_value"); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("test_expr", obj, "test_path"); //--------------------------Assert---------------------------- Assert.AreEqual(output, interpreter._output); }
public void Interpreter_Trace_Walk_IsObject_True_ContainsCommaParentheses_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "test_test, testsss"); var obj = new object(); obj = "test_object".ToString(); mockJsonPathValueSystem.Setup(o => o.IsObject(It.IsAny <object>())).Returns(true); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("(..,asdf.*);", obj, "test_path;"); //--------------------------Assert---------------------------- Assert.AreEqual(eval, interpreter._eval); }
public void Interpreter_Trace_Slice_Value_IsNull_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "?(test_test, testsss)"); var obj = new object(); obj = new List <string> { null }; mockJsonPathValueSystem.Setup(o => o.IsObject(It.IsAny <object>())).Returns(true); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("09:01:00;", null, "test_path;"); //--------------------------Assert---------------------------- Assert.AreEqual(eval, interpreter._eval); Assert.AreEqual(output, interpreter._output); }
public void Interpreter_Trace_ParseInt_Throw_FormatException_ExpectSuccess() { //--------------------------Arrange--------------------------- var mockJsonPathValueSystem = new Mock <IJsonPathValueSystem>(); var output = new JsonPathResultAccumulator((o, sa) => sa = new[] { "string_Test" }); var eval = new JsonPathScriptEvaluator((s, o, ss) => ss = "?(test_test, testsss)"); var obj = new object(); obj = new List <string> { "string1", "string2" }.ToArray(); mockJsonPathValueSystem.Setup(o => o.IsObject(It.IsAny <object>())).Returns(true); var interpreter = new Interpreter(output, mockJsonPathValueSystem.Object, eval); //--------------------------Act------------------------------- interpreter.StoreExpressionTreeLeafNodes("-1::;", obj, "test_path;"); //--------------------------Assert---------------------------- Assert.AreEqual(eval, interpreter._eval); Assert.AreEqual(output, interpreter._output); }
public Interpreter(JsonPathResultAccumulator output, JsonPathScriptEvaluator eval, IJsonValueSystem system) { this.output = output; this.eval = eval ?? new JsonPathScriptEvaluator(NullEval); this.system = system ?? defaultSystem; }