Skip to content

Commit 1e49c74

Browse files
committed
fix
1 parent 1bd81dd commit 1e49c74

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

src/Store/InMemoryStore.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Patchlevel\EventSourcing\Store\Header\PlayheadHeader;
2323
use Patchlevel\EventSourcing\Store\Header\StreamNameHeader;
2424

25+
use Throwable;
2526
use function array_filter;
2627
use function array_map;
2728
use function array_reverse;
@@ -94,7 +95,14 @@ public function save(Message ...$messages): void
9495
*/
9596
public function transactional(Closure $function): void
9697
{
97-
$function();
98+
$messages = $this->messages;
99+
try {
100+
$function();
101+
} catch (Throwable $e) {
102+
$this->messages = $messages;
103+
104+
throw $e;
105+
}
98106
}
99107

100108
/** @return list<string> */
@@ -243,7 +251,7 @@ static function (Message $message) use ($criteria, $eventRegistry): bool {
243251
return false;
244252
}
245253

246-
if ($index < $criterion->fromIndex) {
254+
if ($index <= $criterion->fromIndex) {
247255
return false;
248256
}
249257

tests/Unit/Store/InMemoryStoreTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public function testLoadFromIndex(): void
163163

164164
$store = new InMemoryStore([$message1, $message2, $message3, $message4]);
165165

166-
$stream = $store->load(new Criteria(new FromIndexCriterion(3)));
166+
$stream = $store->load(new Criteria(new FromIndexCriterion(2)));
167167

168168
$messages = iterator_to_array($stream);
169169

0 commit comments

Comments
 (0)