public void JsonLineFile() { const int expectedCount = 100; var whereClauses = new List <string>() { @"name = 'ok'", @"name = 'ok' AND utcnow >= #2018-12-26 01:24:46#", @"name = 'ok' AND utcnow >= #2018-12-01 01:24:46# AND utcnow <= #2018-12-31 01:24:46# ", @" Range(utcnow, #2018-12-01 01:24:46#, #2018-12-31 01:24:46#) ", @" now = #2018-12-25 20:23:49# AND now <> #2018-12-25 20:23:50#", @" Wildcard(wildText, 'ABCDE') AND Wildcard(wildText, '?BCD?') AND Wildcard(wildText, '?B?D?') AND Wildcard(wildText, 'A*E') AND Wildcard(wildText, 'A*C*E') AND Not( Wildcard(wildText, ""ABCDZ"") ) " }; whereClauses.Add(JsonQueryRuntime.CombineWhereClauseExpressions(whereClauses, "AND")); whereClauses.Add(JsonQueryRuntime.CombineWhereClauseExpressions(whereClauses, "OR")); foreach (var whereClause in whereClauses) { var resultLines = new JsonQueryRuntime(whereClause) .ExecuteFile(JsonLinesFileName, TextType.JSON_LINES).ToList(); Assert.AreEqual(expectedCount, resultLines.Count); } }
public void File_WithArrayOfObject_QueryInString() { var resultLines = new JsonQueryRuntime(@" In( company, Array('SQUISH', 'ZILLATIDE', 'SKINSERVE') ) ").ExecuteFile(JsonArrayOfObjectFileName, TextType.JSON).ToList(); Assert.AreEqual(3, resultLines.Count); }
public void String_Equal() { var resultLines = new JsonQueryRuntime(@"name = ""ok"" ").Execute(GetJsonLines0()).ToList(); Assert.AreEqual(3, resultLines.Count); resultLines = new JsonQueryRuntime(@"name = ""foo"" ").Execute(GetJsonLines0()).ToList(); Assert.AreEqual(0, resultLines.Count); }
public void File_WithArrayOfObject_QuerySubObject() { var resultLines = new JsonQueryRuntime(@" IsObject ( Path ( ""friends[?(@.name == 'Harmon Blankenship')]"" ) ) OR IsObject ( Path ( ""friends[?(@.name == 'Juanita Chapman')]"" ) ) ").ExecuteFile(JsonArrayOfObjectFileName, TextType.JSON).ToList(); Assert.AreEqual(2, resultLines.Count); }
public void String_WildCard() { var resultLines = new JsonQueryRuntime(@" Wildcard(wildText, ""?BCD?"") ").Execute(GetJsonLines0()).ToList(); Assert.AreEqual(3, resultLines.Count); resultLines = new JsonQueryRuntime(@" Wildcard(wildText, ""?BCD?"") OR Wildcard(wildText, ""XYZ"") ").Execute(GetJsonLines0()).ToList(); Assert.AreEqual(4, resultLines.Count); resultLines = new JsonQueryRuntime(@" Wildcard(wildText, ""?BCD?"") AND Wildcard(wildText, ""XYZ"") ").Execute(GetJsonLines0()).ToList(); Assert.AreEqual(0, resultLines.Count); }
public void Contains() { var resultLines = new JsonQueryRuntime(@" Contains(text, 'ABCD') ") .ExecuteFile(LogTextFileName, TextType.TEXT).ToList(); Assert.AreEqual(10, resultLines.Count); resultLines = new JsonQueryRuntime(@" Contains(text, 'ZZZZ') ") .ExecuteFile(LogTextFileName, TextType.TEXT).ToList(); Assert.AreEqual(1, resultLines.Count); }
public void Perf_Execute_String_Equal() { var lines = GetJsonLines1().ToList(); var sw = Stopwatch.StartNew(); var resultLines = new JsonQueryRuntime(@"name = ""ok"" ").Execute(lines).ToList(); sw.Stop(); var expectedCount = lines.Count / 2; Assert.AreEqual(expectedCount, resultLines.Count); Assert.IsTrue(sw.Elapsed < new System.TimeSpan(0, 0, 4, 200)); }
public void File_WithArrayOfObject() { var resultLines = new JsonQueryRuntime(@" _id= ""5c2d299add266f6d68570885"" ").ExecuteFile(JsonArrayOfObjectFileName, TextType.JSON).ToList(); Assert.AreEqual(1, resultLines.Count); resultLines = new JsonQueryRuntime(@" eyeColor = 'blue' AND age = 37 AND name.first = 'Nancy' AND Contains(tags, Array('laboris', 'ea')) AND EqualArray(range, Array(0,1,2,3,4,5,6,7,8,9)) ").ExecuteFile(JsonArrayOfObjectFileName, TextType.JSON).ToList(); Assert.AreEqual(1, resultLines.Count); resultLines = new JsonQueryRuntime(@" eyeColor = 'blue' AND age = 37 AND Path('name.first') = ""Nancy"" AND Contains(tags, Array(""laboris"", ""ea"", ""BAD-VALUE"")) ").ExecuteFile(JsonArrayOfObjectFileName, TextType.JSON).ToList(); Assert.AreEqual(0, resultLines.Count); }