public void BuildJObjectArrayIndexMapHelper_Build_GivenNullExpression_DoesNotThrow() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@ob]]", "{\"addresses\":[],\"users\":[{\"name\":\"bob\"},{\"name\":\"joe\"},{\"name\":\"jef\"}],\"tags\":[]}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@ob.users(*).name]]"; var indexMap = test.Build(null, exp); Assert.AreEqual(0, indexMap.Count); }
public void BuildJObjectArrayIndexMapHelper_Build_GivenObjectWithChildThatHasListOfStrings_SelectNonExistentItem_ExpectNoIndexMap() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@ob]]", "{\"addresses\":[],\"user\":{\"name\":\"bob\", \"friends\":[{\"name\":\"joe\"},{\"name\":\"jef\"}]}}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@ob.user.addresses(*).name]]"; var parsedExpression = EvaluationFunctions.parseLanguageExpressionWithoutUpdate(exp, ShouldTypeCast.Yes) as LanguageAST.LanguageExpression.JsonIdentifierExpression; var indexMap = test.Build(parsedExpression.Item, exp); Assert.AreEqual(0, indexMap.Count); }
public void BuildJObjectArrayIndexMapHelper_Build_GivenObjectWithListOfStrings_ExpectIndexForEachArrayItem() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@ob]]", "{\"addresses\":[],\"users\":[{\"name\":\"bob\"},{\"name\":\"joe\"},{\"name\":\"jef\"}],\"tags\":[]}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@ob.users(*).name]]"; var parsedExpression = EvaluationFunctions.parseLanguageExpressionWithoutUpdate(exp, ShouldTypeCast.Yes) as LanguageAST.LanguageExpression.JsonIdentifierExpression; var indexMap = test.Build(parsedExpression.Item, exp); Assert.AreEqual(3, indexMap.Count); Assert.AreEqual("[[@ob.users(1).name]]", indexMap[0]); Assert.AreEqual("[[@ob.users(2).name]]", indexMap[1]); Assert.AreEqual("[[@ob.users(3).name]]", indexMap[2]); }