use of org.neo4j.driver.summary.ResultSummary in project neo4j by neo4j.
the class PrettyPrinterTest method prettyPrintExplainInformation.
@Test
public void prettyPrintExplainInformation() {
// given
ResultSummary resultSummary = mock(ResultSummary.class);
ProfiledPlan plan = mock(ProfiledPlan.class);
when(plan.dbHits()).thenReturn(1000L);
when(plan.records()).thenReturn(20L);
when(resultSummary.hasPlan()).thenReturn(true);
when(resultSummary.hasProfile()).thenReturn(false);
when(resultSummary.plan()).thenReturn(plan);
when(resultSummary.resultAvailableAfter(anyObject())).thenReturn(5L);
when(resultSummary.resultConsumedAfter(anyObject())).thenReturn(7L);
when(resultSummary.queryType()).thenReturn(QueryType.READ_ONLY);
Map<String, Value> argumentMap = Values.parameters("Version", "3.1", "Planner", "COST", "Runtime", "INTERPRETED").asMap(v -> v);
when(plan.arguments()).thenReturn(argumentMap);
BoltResult result = new ListBoltResult(Collections.emptyList(), resultSummary);
// when
String actual = plainPrinter.format(result);
// then
String expected = "Plan: \"EXPLAIN\"\n" + "Statement: \"READ_ONLY\"\n" + "Version: \"3.1\"\n" + "Planner: \"COST\"\n" + "Runtime: \"INTERPRETED\"\n" + "Time: 12";
Stream.of(expected.split("\n")).forEach(e -> assertThat(actual, containsString(e)));
}
use of org.neo4j.driver.summary.ResultSummary in project neo4j by neo4j.
the class TableOutputFormatterTest method prettyPrintPlanInformation.
@Test
public void prettyPrintPlanInformation() throws IOException {
// given
ResultSummary resultSummary = mock(ResultSummary.class);
Map<String, Value> argumentMap = Values.parameters("Version", "3.1", "Planner", "COST", "Runtime", "INTERPRETED", "GlobalMemory", 10, "DbHits", 2, "Rows", 3, "EstimatedRows", 10, "Time", 15, "Order", "a", "PageCacheHits", 22, "PageCacheMisses", 2, "Memory", 5).asMap(v -> v);
ProfiledPlan plan = mock(ProfiledPlan.class);
when(plan.dbHits()).thenReturn(1000L);
when(plan.records()).thenReturn(20L);
when(plan.arguments()).thenReturn(argumentMap);
when(plan.operatorType()).thenReturn("MyOp");
when(plan.identifiers()).thenReturn(Arrays.asList("a", "b"));
when(resultSummary.hasPlan()).thenReturn(true);
when(resultSummary.hasProfile()).thenReturn(true);
when(resultSummary.plan()).thenReturn(plan);
when(resultSummary.profile()).thenReturn(plan);
when(resultSummary.resultAvailableAfter(anyObject())).thenReturn(5L);
when(resultSummary.resultConsumedAfter(anyObject())).thenReturn(7L);
when(resultSummary.queryType()).thenReturn(QueryType.READ_ONLY);
when(plan.arguments()).thenReturn(argumentMap);
BoltResult result = new ListBoltResult(Collections.emptyList(), resultSummary);
// when
String actual = verbosePrinter.format(result);
// then
String expected = IOUtils.toString(getClass().getResource("/org/neo4j/shell/prettyprint/expected-pretty-print-plan-information.txt"), UTF_8).replace("\n", NEWLINE);
assertThat(actual, startsWith(expected));
}
use of org.neo4j.driver.summary.ResultSummary in project neo4j by neo4j.
the class TableOutputFormatterTest method mockResult.
private Result mockResult(List<String> cols, Object... data) {
Result result = mock(Result.class);
Query query = mock(Query.class);
ResultSummary summary = mock(ResultSummary.class);
when(summary.query()).thenReturn(query);
when(result.keys()).thenReturn(cols);
List<Record> records = new ArrayList<>();
List<Object> input = asList(data);
int width = cols.size();
for (int row = 0; row < input.size() / width; row++) {
records.add(record(cols, input.subList(row * width, (row + 1) * width)));
}
when(result.list()).thenReturn(records);
when(result.consume()).thenReturn(summary);
when(result.consume()).thenReturn(summary);
return result;
}
use of org.neo4j.driver.summary.ResultSummary in project neo4j by neo4j.
the class OutputFormatterTest method shouldReportTotalDBHits.
@Test
public void shouldReportTotalDBHits() {
Value labelScan = buildOperator("NodeByLabelScan", 1002L, 1001L, null);
Value filter = buildOperator("Filter", 1402, 280, labelScan);
Value planMap = buildOperator("ProduceResults", 0, 280, filter);
ProfiledPlan plan = PROFILED_PLAN_FROM_VALUE.apply(planMap);
ResultSummary summary = new InternalResultSummary(new Query("PROFILE MATCH (n:LABEL) WHERE 20 < n.age < 35 return n"), new InternalServerInfo("agent", new BoltServerAddress("localhost:7687"), ServerVersion.vInDev, BoltProtocolV43.VERSION), new InternalDatabaseInfo("neo4j"), QueryType.READ_ONLY, null, plan, plan, Collections.emptyList(), 39, 55);
// When
Map<String, Value> info = OutputFormatter.info(summary);
// Then
assertThat(info.get("DbHits").asLong(), equalTo(2404L));
}
use of org.neo4j.driver.summary.ResultSummary in project neo4j by neo4j.
the class PrettyPrinterTest method returnStatisticsForEmptyRecords.
@Test
public void returnStatisticsForEmptyRecords() {
// given
ResultSummary resultSummary = mock(ResultSummary.class);
SummaryCounters summaryCounters = mock(SummaryCounters.class);
BoltResult result = new ListBoltResult(Collections.emptyList(), resultSummary);
when(resultSummary.counters()).thenReturn(summaryCounters);
when(summaryCounters.labelsAdded()).thenReturn(1);
when(summaryCounters.nodesCreated()).thenReturn(10);
// when
String actual = verbosePrinter.format(result);
// then
assertThat(actual, containsString("Added 10 nodes, Added 1 labels"));
}
Aggregations