|
18 | 18 | use Exception;
|
19 | 19 | use Laudis\Neo4j\Bolt\BoltDriver;
|
20 | 20 | use Laudis\Neo4j\Common\Uri;
|
| 21 | +use Laudis\Neo4j\Contracts\TransactionInterface; |
| 22 | +use Laudis\Neo4j\Databags\SummarizedResult; |
21 | 23 | use PHPUnit\Framework\TestCase;
|
22 | 24 | use Psr\Http\Message\UriInterface;
|
23 | 25 |
|
@@ -103,4 +105,34 @@ public function testInvalidSocket(): void
|
103 | 105 | $this->expectException(ConnectException::class);
|
104 | 106 | $driver->createSession()->run('RETURN 1');
|
105 | 107 | }
|
| 108 | + |
| 109 | + public function testBookmarkUpdates(): void |
| 110 | + { |
| 111 | + if ($this->uri === null) { |
| 112 | + self::markTestSkipped('No bolt uri provided'); |
| 113 | + } |
| 114 | + |
| 115 | + $session = BoltDriver::create($this->uri->__toString())->createSession(); |
| 116 | + $bookmark = $session->getLastBookmark(); |
| 117 | + $this->assertEquals([], $bookmark->values()); |
| 118 | + $this->assertTrue($bookmark->isEmpty()); |
| 119 | + $previousBookmark = $bookmark; |
| 120 | + |
| 121 | + /** @var SummarizedResult $result */ |
| 122 | + $result = $session->run('MATCH (x) RETURN x'); |
| 123 | + $result->preload(); |
| 124 | + |
| 125 | + $bookmark = $session->getLastBookmark(); |
| 126 | + $this->assertFalse($bookmark->isEmpty()); |
| 127 | + $this->assertNotEquals($previousBookmark->values(), $bookmark->values()); |
| 128 | + $previousBookmark = $bookmark; |
| 129 | + |
| 130 | + /** @var SummarizedResult $result */ |
| 131 | + $result = $session->run('CREATE (x:Node)'); |
| 132 | + $result->preload(); |
| 133 | + |
| 134 | + $bookmark = $session->getLastBookmark(); |
| 135 | + $this->assertFalse($bookmark->isEmpty()); |
| 136 | + $this->assertNotEquals($previousBookmark->values(), $bookmark->values()); |
| 137 | + } |
106 | 138 | }
|
0 commit comments