@@ -276,4 +276,71 @@ public function testSymfonySerialize()
276
276
$ serialized = $ serializer ->serialize ($ e , 'json ' );
277
277
$ this ->assertStringMatchesFormat ($ expectedJson , json_encode (json_decode ($ serialized ), \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ));
278
278
}
279
+
280
+ /**
281
+ * @dataProvider ensureValidityProvider
282
+ */
283
+ public function testEnsureValidity (array $ headers , ?string $ exceptionClass , ?string $ exceptionMessage )
284
+ {
285
+ if ($ exceptionClass ) {
286
+ $ this ->expectException ($ exceptionClass );
287
+ $ this ->expectExceptionMessage ($ exceptionMessage );
288
+ } else {
289
+ $ this ->expectNotToPerformAssertions ();
290
+ }
291
+
292
+ $ m = new Message ();
293
+ foreach ($ headers as $ headerName => $ headerValue ) {
294
+ $ m ->getHeaders ()->addMailboxListHeader ($ headerName , $ headerValue );
295
+ }
296
+ $ m ->ensureValidity ();
297
+ }
298
+
299
+ public function ensureValidityProvider ()
300
+ {
301
+ return [
302
+ 'Valid address fields ' => [
303
+ [
304
+ 'To ' => ['dummy@symfony.com ' ],
305
+ 'From ' => ['test@symfony.com ' ],
306
+ ],
307
+ null ,
308
+ null ,
309
+ ],
310
+
311
+ 'No destination address fields ' => [
312
+ [
313
+ 'From ' => ['test@symfony.com ' ],
314
+ ],
315
+ LogicException::class,
316
+ 'An email must have a "To", "Cc", or "Bcc" header. ' ,
317
+ ],
318
+
319
+ 'Empty destination address fields ' => [
320
+ [
321
+ 'To ' => [],
322
+ 'From ' => ['test@symfony.com ' ],
323
+ ],
324
+ LogicException::class,
325
+ 'An email must have a "To", "Cc", or "Bcc" header. ' ,
326
+ ],
327
+
328
+ 'No originator fields ' => [
329
+ [
330
+ 'To ' => ['dummy@symfony.com ' ],
331
+ ],
332
+ LogicException::class,
333
+ 'An email must have a "From" or a "Sender" header. ' ,
334
+ ],
335
+
336
+ 'Empty originator fields ' => [
337
+ [
338
+ 'To ' => ['dummy@symfony.com ' ],
339
+ 'From ' => [],
340
+ ],
341
+ LogicException::class,
342
+ 'An email must have a "From" or a "Sender" header. ' ,
343
+ ],
344
+ ];
345
+ }
279
346
}
0 commit comments