use of org.neo4j.driver.Record in project neo4j by neo4j.
the class PrettyPrinterTest method prettyPrintNode.
@Test
public void prettyPrintNode() {
// given
Record record = mock(Record.class);
Value value = mock(Value.class);
Node node = mock(Node.class);
HashMap<String, Object> propertiesAsMap = new HashMap<>();
propertiesAsMap.put("prop1", "prop1_value");
propertiesAsMap.put("prop2", "prop2_value");
when(value.type()).thenReturn(InternalTypeSystem.TYPE_SYSTEM.NODE());
when(value.asNode()).thenReturn(node);
when(node.labels()).thenReturn(asList("label1", "label2"));
when(node.asMap(anyObject())).thenReturn(unmodifiableMap(propertiesAsMap));
when(record.keys()).thenReturn(asList("col1", "col2"));
when(record.values()).thenReturn(asList(value));
BoltResult result = new ListBoltResult(asList(record), mock(ResultSummary.class));
// when
String actual = plainPrinter.format(result);
// then
assertThat(actual, is("col1, col2" + NEWLINE + "(:label1:label2 {prop2: prop2_value, prop1: prop1_value})" + NEWLINE));
}
use of org.neo4j.driver.Record in project neo4j by neo4j.
the class TableOutputFormatterTest method prettyPrintPath.
@Test
public void prettyPrintPath() {
// given
List<String> keys = asList("path");
Node n1 = mock(Node.class);
when(n1.id()).thenReturn(1L);
List<String> labels = asList("L1");
when(n1.labels()).thenReturn(labels);
when(n1.asMap(anyObject())).thenReturn(Collections.emptyMap());
Relationship r1 = mock(Relationship.class);
when(r1.startNodeId()).thenReturn(2L);
when(r1.type()).thenReturn("R1");
when(r1.asMap(anyObject())).thenReturn(Collections.emptyMap());
Node n2 = mock(Node.class);
when(n2.id()).thenReturn(2L);
when(n2.labels()).thenReturn(asList("L2"));
when(n2.asMap(anyObject())).thenReturn(Collections.emptyMap());
Relationship r2 = mock(Relationship.class);
when(r2.startNodeId()).thenReturn(2L);
when(r2.type()).thenReturn("R2");
when(r2.asMap(anyObject())).thenReturn(Collections.emptyMap());
Node n3 = mock(Node.class);
when(n3.id()).thenReturn(3L);
when(n3.labels()).thenReturn(asList("L3"));
when(n3.asMap(anyObject())).thenReturn(Collections.emptyMap());
Path.Segment s1 = mock(Path.Segment.class);
when(s1.relationship()).thenReturn(r1);
when(s1.start()).thenReturn(n1);
when(s1.end()).thenReturn(n2);
Path.Segment s2 = mock(Path.Segment.class);
when(s2.relationship()).thenReturn(r2);
when(s2.start()).thenReturn(n2);
when(s2.end()).thenReturn(n3);
List<Path.Segment> segments = asList(s1, s2);
List<Node> nodes = asList(n1, n2);
List<Relationship> relationships = asList(r1);
InternalPath internalPath = new InternalPath(segments, nodes, relationships);
Value value = new PathValue(internalPath);
Record record = new InternalRecord(keys, new Value[] { value });
// when
String actual = verbosePrinter.format(new ListBoltResult(asList(record), mock(ResultSummary.class)));
// then
assertThat(actual, containsString("| (:L1)<-[:R1]-(:L2)-[:R2]->(:L3) |"));
}
use of org.neo4j.driver.Record 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.Record in project neo4j by neo4j.
the class TableOutputFormatterTest method prettyPrintDurationWithNoTrailingZeroes.
@Test
public void prettyPrintDurationWithNoTrailingZeroes() {
// given
List<String> keys = asList("d");
Value duration = new DurationValue(new InternalIsoDuration(1, 2, 3, 0));
Record record = new InternalRecord(keys, new Value[] { duration });
// when
String actual = verbosePrinter.format(new ListBoltResult(asList(record), mock(ResultSummary.class)));
// then
assertThat(actual, containsString("| P1M2DT3S |"));
}
use of org.neo4j.driver.Record in project neo4j by neo4j.
the class TableOutputFormatterTest method printRelationshipsAndNodesWithEscapingForSpecialCharacters.
@Test
public void printRelationshipsAndNodesWithEscapingForSpecialCharacters() {
// given
Record record = mock(Record.class);
Map<String, Value> propertiesAsMap = new HashMap<>();
propertiesAsMap.put("prop1", Values.value("prop1, value"));
propertiesAsMap.put("prop2", Values.value(1));
Value relVal = new RelationshipValue(new InternalRelationship(1, 1, 2, "RELATIONSHIP,TYPE", propertiesAsMap));
List<String> labels = asList("label `1", "label2");
Map<String, Value> nodeProperties = new HashMap<>();
nodeProperties.put("prop1", Values.value("prop1:value"));
String doubleQuotes = "\"\"";
nodeProperties.put("1prop1", Values.value(doubleQuotes));
nodeProperties.put("ä", Values.value("not-escaped"));
Value nodeVal = new NodeValue(new InternalNode(1, labels, nodeProperties));
Map<String, Value> recordMap = new LinkedHashMap<>();
recordMap.put("rel", relVal);
recordMap.put("node", nodeVal);
List<String> keys = asList("rel", "node");
when(record.keys()).thenReturn(keys);
when(record.size()).thenReturn(2);
when(record.get(0)).thenReturn(relVal);
when(record.get(1)).thenReturn(nodeVal);
when(record.<Value>asMap(anyObject())).thenReturn(recordMap);
when(record.values()).thenReturn(asList(relVal, nodeVal));
// when
String actual = verbosePrinter.format(new ListBoltResult(asList(record), mock(ResultSummary.class)));
// then
assertThat(actual, containsString("| [:`RELATIONSHIP,TYPE` {prop2: 1, prop1: \"prop1, value\"}] |"));
assertThat(actual, containsString("| (:`label ``1`:label2 {`1prop1`: \"\\\"\\\"\", " + "prop1: \"prop1:value\", ä: \"not-escaped\"}) |"));
}
Aggregations