File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed
src/Subscription/Subscriber/ArgumentResolver
tests/Unit/Subscription/Subscriber/ArgumentResolver Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change 88use Patchlevel \EventSourcing \Aggregate \AggregateHeader ;
99use Patchlevel \EventSourcing \Message \Message ;
1010use Patchlevel \EventSourcing \Metadata \Subscriber \ArgumentMetadata ;
11+ use Patchlevel \EventSourcing \Store \Header \RecordedOnHeader ;
1112
1213final class RecordedOnArgumentResolver implements ArgumentResolver
1314{
1415 public function resolve (ArgumentMetadata $ argument , Message $ message ): DateTimeImmutable
1516 {
17+ if ($ message ->hasHeader (RecordedOnHeader::class)) {
18+ return $ message ->header (RecordedOnHeader::class)->recordedOn ;
19+ }
20+
1621 return $ message ->header (AggregateHeader::class)->recordedOn ;
1722 }
1823
Original file line number Diff line number Diff line change 88use Patchlevel \EventSourcing \Aggregate \AggregateHeader ;
99use Patchlevel \EventSourcing \Message \Message ;
1010use Patchlevel \EventSourcing \Metadata \Subscriber \ArgumentMetadata ;
11+ use Patchlevel \EventSourcing \Store \Header \RecordedOnHeader ;
1112use Patchlevel \EventSourcing \Subscription \Subscriber \ArgumentResolver \RecordedOnArgumentResolver ;
1213use PHPUnit \Framework \Attributes \CoversClass ;
1314use PHPUnit \Framework \TestCase ;
@@ -35,7 +36,7 @@ public function testSupport(): void
3536 );
3637 }
3738
38- public function testResolve (): void
39+ public function testResolveFromAggregateHeader (): void
3940 {
4041 $ date = new DateTimeImmutable ();
4142
@@ -57,4 +58,20 @@ public function testResolve(): void
5758 ),
5859 );
5960 }
61+
62+ public function testResolveFromRecordedOnHeader (): void
63+ {
64+ $ date = new DateTimeImmutable ();
65+
66+ $ resolver = new RecordedOnArgumentResolver ();
67+ $ message = (new Message (new stdClass ()))->withHeader (new RecordedOnHeader ($ date ));
68+
69+ self ::assertSame (
70+ $ date ,
71+ $ resolver ->resolve (
72+ new ArgumentMetadata ('foo ' , DateTimeImmutable::class),
73+ $ message ,
74+ ),
75+ );
76+ }
6077}
You can’t perform that action at this time.
0 commit comments