Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b0c3676

Browse files
tesktkit bookmarks (#269)
Fix all bookmark tests
1 parent b30ef26 commit b0c3676

File tree

13 files changed

+155
-129
lines changed

13 files changed

+155
-129
lines changed

‎composer.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,6 @@
8484
"scripts": {
8585
"fix-cs": "./vendor/bin/php-cs-fixer fix",
8686
"check-cs": "./vendor/bin/php-cs-fixer fix --dry-run",
87-
"psalm": "./vendor/bin/psalm"
87+
"psalm": "./vendor/bin/psalm --show-info"
8888
}
8989
}

‎src/Bolt/BoltConnection.php‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public function getProtocol(): ConnectionProtocol
128128
/**
129129
* @psalm-mutation-free
130130
*/
131-
public function getAccessMode(): AccessMode
131+
public function getAccessMode(): ?AccessMode
132132
{
133133
return $this->config->getAccessMode();
134134
}
@@ -217,7 +217,7 @@ public function begin(?string $database, ?float $timeout, BookmarkHolder $holder
217217
{
218218
$this->consumeResults();
219219

220-
$extra = $this->buildRunExtra($database, $timeout, $holder, AccessMode::WRITE(), $txMetaData);
220+
$extra = $this->buildRunExtra($database, $timeout, $holder, null, $txMetaData);
221221
$message = $this->messageFactory->createBeginMessage($extra);
222222
$response = $message->send()->getResponse();
223223
$this->assertNoFailure($response);
@@ -249,7 +249,7 @@ public function run(
249249
array $parameters,
250250
?string $database,
251251
?float $timeout,
252-
BookmarkHolder $holder,
252+
?BookmarkHolder $holder,
253253
?AccessMode $mode,
254254
?iterable $tsxMetadata,
255255
): array {
@@ -295,7 +295,6 @@ public function protocol(): V4_4|V5|V5_1|V5_2|V5_3|V5_4
295295
public function pull(?int $qid, ?int $fetchSize): array
296296
{
297297
$extra = $this->buildResultExtra($fetchSize, $qid);
298-
$this->logger?->log(LogLevel::DEBUG, 'PULL', $extra);
299298

300299
$tbr = [];
301300
$message = $this->messageFactory->createPullMessage($extra);
@@ -331,7 +330,7 @@ public function close(): void
331330
}
332331
}
333332

334-
private function buildRunExtra(?string $database, ?float $timeout, BookmarkHolder $holder, ?AccessMode $mode, ?iterable $metadata): array
333+
private function buildRunExtra(?string $database, ?float $timeout, ?BookmarkHolder $holder, ?AccessMode $mode, ?iterable $metadata): array
335334
{
336335
$extra = [];
337336
if ($database !== null) {
@@ -341,7 +340,7 @@ private function buildRunExtra(?string $database, ?float $timeout, BookmarkHolde
341340
$extra['tx_timeout'] = (int) ($timeout * 1000);
342341
}
343342

344-
if (!$holder->getBookmark()->isEmpty()) {
343+
if ($holder && !$holder->getBookmark()->isEmpty()) {
345344
$extra['bookmarks'] = $holder->getBookmark()->values();
346345
}
347346

@@ -366,7 +365,7 @@ private function buildResultExtra(?int $fetchSize, ?int $qid): array
366365
$extra['n'] = $fetchSize;
367366
}
368367

369-
if ($qid !== null) {
368+
if ($qid !== null && $qid >= 0) {
370369
$extra['qid'] = $qid;
371370
}
372371

@@ -420,6 +419,10 @@ public function assertNoFailure(Response $response): void
420419
*/
421420
public function discardUnconsumedResults(): void
422421
{
422+
if (!in_array($this->protocol()->serverState, [ServerState::STREAMING, ServerState::TX_STREAMING], true)) {
423+
return;
424+
}
425+
423426
$this->logger?->log(LogLevel::DEBUG, 'Discarding unconsumed results');
424427

425428
$this->subscribedResults = array_values(array_filter(

‎src/Bolt/BoltUnmanagedTransaction.php‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public function __construct(
5252
private readonly TransactionConfiguration $tsxConfig,
5353
private readonly BookmarkHolder $bookmarkHolder,
5454
private readonly BoltMessageFactory $messageFactory,
55+
private readonly bool $isInstantTransaction,
5556
) {
5657
}
5758

@@ -147,8 +148,8 @@ public function runStatement(Statement $statement): SummarizedResult
147148
$parameters->toArray(),
148149
$this->database,
149150
$this->tsxConfig->getTimeout(),
150-
$this->bookmarkHolder,
151-
$this->config->getAccessMode(),
151+
$this->isInstantTransaction ? $this->bookmarkHolder : null, // let the begin transaction pass the bookmarks if it is a managed transaction
152+
$this->isInstantTransaction ? $this->config->getAccessMode() : null, // let the begin transaction decide if it is a managed transaction
152153
$this->tsxConfig->getMetaData()
153154
);
154155
} catch (Throwable $e) {

‎src/Bolt/Session.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ private function beginInstantTransaction(
195195
$tsxConfig,
196196
$this->bookmarkHolder,
197197
new BoltMessageFactory($connection, $this->getLogger()),
198+
true,
198199
);
199200
}
200201

@@ -246,6 +247,7 @@ private function startTransaction(TransactionConfiguration $config, SessionConfi
246247
$config,
247248
$this->bookmarkHolder,
248249
new BoltMessageFactory($connection, $this->getLogger()),
250+
false
249251
);
250252
}
251253

‎src/Client.php‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ private function startSession(?string $alias, SessionConfiguration $configuratio
130130

131131
public function writeTransaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
132132
{
133-
if ($this->defaultSessionConfiguration->getAccessMode() === AccessMode::WRITE()) {
133+
$accessMode = $this->defaultSessionConfiguration->getAccessMode();
134+
if ($accessMode === null || $accessMode === AccessMode::WRITE()) {
134135
$session = $this->getSession($alias);
135136
} else {
136137
$sessionConfig = $this->defaultSessionConfiguration->withAccessMode(AccessMode::WRITE());

‎src/Common/ConnectionConfiguration.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function __construct(
2727
private string $serverAgent,
2828
private readonly UriInterface $serverAddress,
2929
private readonly ConnectionProtocol $protocol,
30-
private readonly AccessMode $accessMode,
30+
private readonly ?AccessMode $accessMode,
3131
private readonly ?DatabaseInfo $databaseInfo,
3232
private readonly string $encryptionLevel,
3333
) {
@@ -54,7 +54,7 @@ public function getProtocol(): ConnectionProtocol
5454
return $this->protocol;
5555
}
5656

57-
public function getAccessMode(): AccessMode
57+
public function getAccessMode(): ?AccessMode
5858
{
5959
return $this->accessMode;
6060
}

‎src/Contracts/ConnectionInterface.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function getProtocol(): ConnectionProtocol;
7575
*
7676
* @psalm-mutation-free
7777
*/
78-
public function getAccessMode(): AccessMode;
78+
public function getAccessMode(): ?AccessMode;
7979

8080
/**
8181
* Returns the information about the database the connection reaches.

‎src/Databags/SessionConfiguration.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ public function getFetchSize(): int
117117
*
118118
* @psalm-suppress ImpureMethodCall
119119
*/
120-
public function getAccessMode(): AccessMode
120+
public function getAccessMode(): ?AccessMode
121121
{
122-
return $this->accessMode ?? AccessMode::WRITE();
122+
return $this->accessMode;
123123
}
124124

125125
/**

‎src/Neo4j/Neo4jConnectionPool.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ public function getLogger(): ?Neo4jLogger
185185
/**
186186
* @throws Exception
187187
*/
188-
private function getNextServer(RoutingTable $table, AccessMode $mode): Uri
188+
private function getNextServer(RoutingTable $table, ?AccessMode $mode): Uri
189189
{
190-
if (AccessMode::WRITE() === $mode) {
190+
if ($mode === null || AccessMode::WRITE() === $mode) {
191191
$servers = $table->getWithRole(RoutingRoles::LEADER());
192192
} else {
193193
$servers = $table->getWithRole(RoutingRoles::FOLLOWER());

‎testkit-backend/src/Handlers/NewSession.php‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,13 @@ public function handle($request): SessionResponse
4141
{
4242
$driver = $this->repository->getDriver($request->driverId);
4343

44-
$config = SessionConfiguration::default()
45-
->withAccessMode($request->accessMode === 'r' ? AccessMode::READ() : AccessMode::WRITE());
44+
$config = SessionConfiguration::default();
45+
46+
if ($request->accessMode === 'r') {
47+
$config = $config->withAccessMode(AccessMode::READ());
48+
} elseif ($request->accessMode === 'w') {
49+
$config = $config->withAccessMode(AccessMode::WRITE());
50+
}
4651

4752
if ($request->bookmarks !== null) {
4853
$config = $config->withBookmarks([new Bookmark($request->bookmarks)]);
@@ -52,7 +57,9 @@ public function handle($request): SessionResponse
5257
$config = $config->withDatabase($request->database);
5358
}
5459

55-
$config = $config->withFetchSize($request->fetchSize ?? 1);
60+
if ($request->fetchSize !== null) {
61+
$config = $config->withFetchSize($request->fetchSize);
62+
}
5663

5764
$session = $driver->createSession($config);
5865
$id = Uuid::v4();

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /