Skip to content

Commit 03823fb

Browse files
author
klapaudius
committed
Refactor message retrieval in CachePoolAdapter.
Updated `receiveMessages` to fetch messages in a loop using `popMessage`. Adjusted corresponding test case to validate the new behavior with consecutive calls and added stricter assertions for cache interactions.
1 parent f548a5d commit 03823fb

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/Transports/SseAdapters/CachePoolAdapter.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ public function removeAllMessages(string $clientId): void
7777
*/
7878
public function receiveMessages(string $clientId): array
7979
{
80-
return $this->cache->getItem($this->generateQueueKey($clientId))->get() ?? [];
80+
$messages = [];
81+
while ($message = $this->popMessage($clientId)) {
82+
$messages[] = $message;
83+
}
84+
85+
return $messages;
8186
}
8287

8388
/**

tests/Transports/SseAdapters/CachePoolAdapterTest.php

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,29 @@ public function test_receive_messages_returns_array_of_messages(): void
192192
->willReturn($this->cacheItemMock);
193193

194194
$this->cacheItemMock
195+
->expects($this->exactly(3))
195196
->method('get')
196-
->willReturn($messages);
197+
->willReturnOnConsecutiveCalls(
198+
['Message 1', 'Message 2'],
199+
['Message 2'],
200+
[]
201+
);
202+
$invocations = [
203+
['Message 2'],
204+
[],
205+
[]
206+
];
207+
$this->cacheItemMock
208+
->expects($matcher = $this->exactly(count($invocations)))
209+
->method('set')
210+
->with($this->callback(function ($value) use ($invocations, $matcher) {
211+
$this->assertEquals($value, $invocations[$matcher->numberOfInvocations()-1]);
212+
return true;
213+
}));
214+
$this->cacheMock
215+
->expects($this->exactly(count($invocations)))
216+
->method('save')
217+
->with($this->cacheItemMock);
197218

198219
$result = $this->adapter->receiveMessages($clientId);
199220

0 commit comments

Comments
 (0)