Search in sources :

Example 6 with Path

use of org.neo4j.driver.types.Path in project neo4j by neo4j.

the class PrettyPrinterTest method prettyPrintPaths.

@Test
public void prettyPrintPaths() {
    // given
    Record record = mock(Record.class);
    Value value = mock(Value.class);
    Node start = mock(Node.class);
    HashMap<String, Object> startProperties = new HashMap<>();
    startProperties.put("prop1", "prop1_value");
    when(start.labels()).thenReturn(asList("start"));
    when(start.id()).thenReturn(1L);
    Node middle = mock(Node.class);
    when(middle.labels()).thenReturn(asList("middle"));
    when(middle.id()).thenReturn(2L);
    Node end = mock(Node.class);
    HashMap<String, Object> endProperties = new HashMap<>();
    endProperties.put("prop2", "prop2_value");
    when(end.labels()).thenReturn(asList("end"));
    when(end.id()).thenReturn(3L);
    Path path = mock(Path.class);
    when(path.start()).thenReturn(start);
    Relationship relationship = mock(Relationship.class);
    when(relationship.type()).thenReturn("RELATIONSHIP_TYPE");
    when(relationship.startNodeId()).thenReturn(1L).thenReturn(3L);
    Path.Segment segment1 = mock(Path.Segment.class);
    when(segment1.start()).thenReturn(start);
    when(segment1.end()).thenReturn(middle);
    when(segment1.relationship()).thenReturn(relationship);
    Path.Segment segment2 = mock(Path.Segment.class);
    when(segment2.start()).thenReturn(middle);
    when(segment2.end()).thenReturn(end);
    when(segment2.relationship()).thenReturn(relationship);
    when(value.type()).thenReturn(InternalTypeSystem.TYPE_SYSTEM.PATH());
    when(value.asPath()).thenReturn(path);
    when(path.iterator()).thenReturn(asList(segment1, segment2).iterator());
    when(start.asMap(anyObject())).thenReturn(unmodifiableMap(startProperties));
    when(end.asMap(anyObject())).thenReturn(unmodifiableMap(endProperties));
    when(record.keys()).thenReturn(asList("path"));
    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("path" + NEWLINE + "(:start {prop1: prop1_value})-[:RELATIONSHIP_TYPE]->" + "(:middle)<-[:RELATIONSHIP_TYPE]-(:end {prop2: prop2_value})" + NEWLINE));
}
Also used : Path(org.neo4j.driver.types.Path) HashMap(java.util.HashMap) Node(org.neo4j.driver.types.Node) ResultSummary(org.neo4j.driver.summary.ResultSummary) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) BoltResult(org.neo4j.shell.state.BoltResult) ListBoltResult(org.neo4j.shell.state.ListBoltResult) ListBoltResult(org.neo4j.shell.state.ListBoltResult) Relationship(org.neo4j.driver.types.Relationship) Value(org.neo4j.driver.Value) Record(org.neo4j.driver.Record) Matchers.anyObject(org.mockito.Matchers.anyObject) Test(org.junit.Test)

Aggregations

Path (org.neo4j.driver.types.Path)6 Value (org.neo4j.driver.Value)5 Node (org.neo4j.driver.types.Node)5 Relationship (org.neo4j.driver.types.Relationship)5 Test (org.junit.Test)4 Record (org.neo4j.driver.Record)4 ListBoltResult (org.neo4j.shell.state.ListBoltResult)4 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)3 ResultSummary (org.neo4j.driver.summary.ResultSummary)3 BoltResult (org.neo4j.shell.state.BoltResult)3 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Executors (java.util.concurrent.Executors)1 Nonnull (javax.annotation.Nonnull)1 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)1 StringContains.containsString (org.hamcrest.core.StringContains.containsString)1 AfterAll (org.junit.jupiter.api.AfterAll)1 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)1