15
15
use Symfony \Component \DependencyInjection \Container ;
16
16
use Symfony \Component \Messenger \Asynchronous \Routing \SenderLocator ;
17
17
use Symfony \Component \Messenger \Tests \Fixtures \DummyMessage ;
18
+ use Symfony \Component \Messenger \Tests \Fixtures \DummyMessageInterface ;
18
19
use Symfony \Component \Messenger \Tests \Fixtures \SecondMessage ;
19
20
use Symfony \Component \Messenger \Transport \SenderInterface ;
20
21
@@ -32,8 +33,47 @@ public function testItReturnsTheSenderBasedOnTheMessageClass()
32
33
),
33
34
));
34
35
35
- $ this ->assertEquals (array ($ sender ), $ locator ->getSendersForMessage (new DummyMessage ('Hello ' )));
36
- $ this ->assertEquals (array (), $ locator ->getSendersForMessage (new SecondMessage ()));
36
+ $ this ->assertSame (array ($ sender ), $ locator ->getSendersForMessage (new DummyMessage ('Hello ' )));
37
+ $ this ->assertSame (array (), $ locator ->getSendersForMessage (new SecondMessage ()));
38
+ }
39
+
40
+ public function testItReturnsTheSenderBasedOnTheMessageParentClass ()
41
+ {
42
+ $ container = new Container ();
43
+
44
+ $ sender = $ this ->getMockBuilder (SenderInterface::class)->getMock ();
45
+ $ container ->set ('my_amqp_sender ' , $ sender );
46
+
47
+ $ apiSender = $ this ->getMockBuilder (SenderInterface::class)->getMock ();
48
+ $ container ->set ('my_api_sender ' , $ apiSender );
49
+
50
+ $ locator = new SenderLocator ($ container , array (
51
+ DummyMessageInterface::class => array (
52
+ 'my_api_sender ' ,
53
+ ),
54
+ DummyMessage::class => array (
55
+ 'my_amqp_sender ' ,
56
+ ),
57
+ ));
58
+ $ this ->assertSame (array ($ sender ), $ locator ->getSendersForMessage (new ChildDummyMessage ('Hello ' )));
59
+ $ this ->assertSame (array (), $ locator ->getSendersForMessage (new SecondMessage ()));
60
+ }
61
+
62
+ public function testItReturnsTheSenderBasedOnTheMessageInterface ()
63
+ {
64
+ $ container = new Container ();
65
+
66
+ $ sender = $ this ->getMockBuilder (SenderInterface::class)->getMock ();
67
+ $ container ->set ('my_amqp_sender ' , $ sender );
68
+
69
+ $ locator = new SenderLocator ($ container , array (
70
+ DummyMessageInterface::class => array (
71
+ 'my_amqp_sender ' ,
72
+ ),
73
+ ));
74
+
75
+ $ this ->assertSame (array ($ sender ), $ locator ->getSendersForMessage (new DummyMessage ('Hello ' )));
76
+ $ this ->assertSame (array (), $ locator ->getSendersForMessage (new SecondMessage ()));
37
77
}
38
78
39
79
public function testItSupportsAWildcardInsteadOfTheMessageClass ()
@@ -55,7 +95,11 @@ public function testItSupportsAWildcardInsteadOfTheMessageClass()
55
95
),
56
96
));
57
97
58
- $ this ->assertEquals (array ($ sender ), $ locator ->getSendersForMessage (new DummyMessage ('Hello ' )));
59
- $ this ->assertEquals (array ($ apiSender ), $ locator ->getSendersForMessage (new SecondMessage ()));
98
+ $ this ->assertSame (array ($ sender ), $ locator ->getSendersForMessage (new DummyMessage ('Hello ' )));
99
+ $ this ->assertSame (array ($ apiSender ), $ locator ->getSendersForMessage (new SecondMessage ()));
60
100
}
61
101
}
102
+
103
+ class ChildDummyMessage extends DummyMessage
104
+ {
105
+ }
0 commit comments