@@ -102,4 +102,38 @@ public function testSendWithSuccessfulResponseDispatchesMessageEvent()
102
102
103
103
$ this ->assertSame ($ messageId , $ sentMessage ->getMessageId ());
104
104
}
105
+
106
+ public function testSentMessageContainsAnArrayOfMessages ()
107
+ {
108
+ $ messageId = bin2hex (random_bytes (7 ));
109
+ $ response = $ this ->createMock (ResponseInterface::class);
110
+ $ response ->expects ($ this ->exactly (2 ))
111
+ ->method ('getStatusCode ' )
112
+ ->willReturn (200 );
113
+ $ response ->expects ($ this ->once ())
114
+ ->method ('getContent ' )
115
+ ->willReturn (json_encode (['batch ' => ['messageheaders ' => [['id ' => $ messageId ]]]]));
116
+
117
+ $ requestOptions = [];
118
+ $ client = new MockHttpClient (static function ($ method , $ url , $ options ) use (&$ requestOptions , $ response ): ResponseInterface {
119
+ $ requestOptions = $ options ;
120
+
121
+ return $ response ;
122
+ });
123
+
124
+ $ transport = self ::createTransport ($ client );
125
+
126
+ $ transport ->send (new SmsMessage ('phone ' , 'testMessage ' ));
127
+
128
+ $ body = json_decode ($ requestOptions ['body ' ] ?? '' );
129
+
130
+ $ messages = $ body ->messages ;
131
+ $ this ->assertIsArray ($ messages );
132
+ $ this ->assertCount (1 , $ messages );
133
+
134
+ $ message = $ messages [array_key_first ($ messages )];
135
+ $ this ->assertIsObject ($ message );
136
+ $ this ->assertTrue (property_exists ($ message , 'to ' ));
137
+ $ this ->assertTrue (property_exists ($ message , 'body ' ));
138
+ }
105
139
}
0 commit comments