5
5
use Bref \Event \Sns \SnsEvent ;
6
6
use Bref \Symfony \Messenger \Service \MessengerTransportConfiguration ;
7
7
use Bref \Symfony \Messenger \Service \Sns \SnsTransportNameResolver ;
8
+ use InvalidArgumentException ;
8
9
use PHPUnit \Framework \TestCase ;
9
10
use Prophecy \Argument ;
10
11
use Prophecy \PhpUnit \ProphecyTrait ;
@@ -26,9 +27,7 @@ public function test_event_source_can_resolved_as_expected(): void
26
27
$ event = new SnsEvent ([
27
28
'Records ' => [
28
29
[
29
-
30
30
'EventSource ' =>'aws:sns ' ,
31
- 'EventSubscriptionArn ' => 'arn:aws:sns:us-east-1:1234567890:async ' ,
32
31
'Sns ' => [
33
32
'Message ' => 'Test message. ' ,
34
33
'MessageAttributes ' => [
@@ -37,11 +36,43 @@ public function test_event_source_can_resolved_as_expected(): void
37
36
'Value ' => ['Content-Type ' => 'application/json ' ],
38
37
],
39
38
],
39
+ 'TopicArn ' => 'arn:aws:sns:us-east-1:1234567890:async ' ,
40
40
],
41
41
],
42
42
],
43
43
]);
44
44
45
45
self ::assertSame ('async ' , ($ transportNameResolver )($ event ->getRecords ()[0 ]));
46
46
}
47
+
48
+ public function test_throws_exception_if_topic_arn_deos_not_exist (): void
49
+ {
50
+ $ messengerTransportConfiguration = $ this ->prophesize (MessengerTransportConfiguration::class);
51
+ /** @phpstan-ignore-next-line */
52
+ $ messengerTransportConfiguration
53
+ ->provideTransportFromEventSource (Argument::cetera ())
54
+ ->willReturn ('async ' );
55
+
56
+ $ transportNameResolver = new SnsTransportNameResolver ($ messengerTransportConfiguration ->reveal ());
57
+
58
+ $ eventWithMissingTopicArn = new SnsEvent ([
59
+ 'Records ' => [
60
+ [
61
+ 'EventSource ' =>'aws:sns ' ,
62
+ 'Sns ' => [
63
+ 'Message ' => 'Test message. ' ,
64
+ 'MessageAttributes ' => [
65
+ 'Headers ' => [
66
+ 'Type ' => 'String ' ,
67
+ 'Value ' => ['Content-Type ' => 'application/json ' ],
68
+ ],
69
+ ],
70
+ ],
71
+ ],
72
+ ],
73
+ ]);
74
+
75
+ $ this ->expectException (InvalidArgumentException::class);
76
+ ($ transportNameResolver )($ eventWithMissingTopicArn ->getRecords ()[0 ]);
77
+ }
47
78
}
0 commit comments