public void ReadHits_WithValidKustoResponse_ReturnsAllHitsParsed() { using var hitsTable = GetTestTable(); var query = new QueryData("query", "index"); var stubKustoResponse = new Mock <KustoResponseDataSet>(); var kustoTableData = new KustoResponseDataTable(hitsTable, WellKnownDataSet.PrimaryResult); var logger = new Mock <ILogger <KustoResponseParser> >(); stubKustoResponse.Setup(res => res["hits"]).Returns(kustoTableData); var kustoResponseParser = new KustoResponseParser(logger.Object, false, stubMetric); var result = kustoResponseParser.ReadHits(stubKustoResponse.Object, query).ToList(); Assert.AreEqual(2, result.Count); Assert.AreEqual(result[0].Index, "index"); Assert.AreEqual(result[1].Index, "index"); var expectedHitSource1 = new JObject { { "column1", "r1c1" }, { "column2", "r1c2" }, }; Assert.AreEqual(result[0].Source, expectedHitSource1); var expectedHitSource2 = new JObject { { "column1", "r2c1" }, { "column2", "r2c2" }, }; Assert.AreEqual(result[1].Source, expectedHitSource2); }
public void ParseElasticResponse_BackendQueryFalse_ReturnsNull() { using var aggsTable = GetAggsTable(); aggsTable.TableName = "aggs"; var timeTaken = new TimeSpan(17); var query = new QueryData("query", "index", null); var reader = aggsTable.CreateDataReader(); var stubLogger = new Mock <ILogger <KustoResponseParser> >().Object; var result = new KustoResponseParser(stubLogger, false, stubMetric).Parse(reader, query, timeTaken); Assert.IsNull(result.Responses.First().BackendQuery); }
public void ParseElasticResponse_BackendQueryTrue_ReturnsTheQuery() { using var aggsTable = GetAggsTable(); aggsTable.TableName = "aggs"; var timeTaken = new TimeSpan(17); var queryText = "query"; var query = new QueryData(queryText, "index", null); var reader = aggsTable.CreateDataReader(); var stubLogger = new Mock <ILogger <KustoResponseParser> >().Object; var result = new KustoResponseParser(stubLogger, true, stubMetric).Parse(reader, query, timeTaken); var check = result.Responses.First().BackendQuery; Assert.AreEqual(queryText, result.Responses.First().BackendQuery); }
public void ReadHits_WithNoHitsInKustoResponse_ReturnsEmptyHits() { using var anyTable = GetTestTable(); anyTable.TableName = "not_hits"; var query = new QueryData("query", "index"); var stubKustoResponse = new Mock <KustoResponseDataSet>(); var logger = new Mock <ILogger <KustoResponseParser> >(); var kustoTableData = new KustoResponseDataTable(anyTable, WellKnownDataSet.PrimaryResult); stubKustoResponse.SetupGet(ds => ds["no_hits"]).Returns(kustoTableData); var kustoResponseParser = new KustoResponseParser(logger.Object, false, stubMetric); var result = kustoResponseParser.ReadHits(stubKustoResponse.Object, query).ToList(); Assert.AreEqual(0, result.Count); }
public void ParseElasticResponse_WithEmptyHitsAndAggs_ReturnsEmptyParsedElasticResponse() { using var anyTable = GetTestTable(); var timeTaken = new TimeSpan(17); var query = new QueryData("query", "index"); var reader = anyTable.CreateDataReader(); var stubLogger = new Mock <ILogger <KustoResponseParser> >().Object; var result = new KustoResponseParser(stubLogger, false, stubMetric).Parse(reader, query, timeTaken); Assert.AreEqual(1, result.Responses.Count()); var elasticResult = result.Responses.ToList()[0]; Assert.AreEqual(0, elasticResult.Hits.Hits.Count()); Assert.AreEqual(0, elasticResult.Aggregations.Collection.Buckets.Count()); }
public void ParseElasticResponse_WithHits_ReturnsElasticResponseWithHits() { using var hitsTable = GetTestTable(); hitsTable.TableName = "hits"; var timeTaken = new TimeSpan(17); var query = new QueryData("query", "index"); var reader = hitsTable.CreateDataReader(); var stubLogger = new Mock <ILogger <KustoResponseParser> >().Object; var result = new KustoResponseParser(stubLogger, false, stubMetric).Parse(reader, query, timeTaken); Assert.AreEqual(1, result.Responses.Count()); var elasticResult = result.Responses.ToList()[0]; Assert.AreEqual(2, elasticResult.Hits.Hits.Count()); }