Skip to content

Commit 440e2aa

Browse files
committed
IHF: to_rfc2822_email fully covered.
1 parent 4cae06d commit 440e2aa

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

tests/email/ToRfc2822EmailTest.php

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?php
2+
3+
class ToRfc2822EmailTest extends TestCase
4+
{
5+
/** @test */
6+
public function it_returns_an_empty_string_for_an_empty_array()
7+
{
8+
$this->assertEquals('', to_rfc2822_email([]));
9+
}
10+
11+
/** @test */
12+
public function it_supports_simplified_syntax_for_one_email()
13+
{
14+
$this->assertEquals(
15+
'John Doe <[email protected]>',
16+
to_rfc2822_email(['address' => '[email protected]', 'name' => 'John Doe'])
17+
);
18+
}
19+
20+
/** @test */
21+
public function it_supports_multiple_emails()
22+
{
23+
$this->assertEquals(
24+
'John Doe <[email protected]>, Jane Doe <[email protected]>, Mary Doe <[email protected]>',
25+
to_rfc2822_email([
26+
['address' => '[email protected]', 'name' => 'John Doe'],
27+
['address' => '[email protected]', 'name' => 'Jane Doe'],
28+
['address' => '[email protected]', 'name' => 'Mary Doe'],
29+
])
30+
);
31+
}
32+
33+
/** @test */
34+
public function it_skips_items_with_empty_addresses()
35+
{
36+
$this->assertEquals(
37+
'John Doe <[email protected]>, Mary Doe <[email protected]>',
38+
to_rfc2822_email([
39+
['address' => '[email protected]', 'name' => 'John Doe'],
40+
['address' => null, 'name' => 'Jane Doe'],
41+
['address' => false, 'name' => 'Jane Doe'],
42+
['address' => '', 'name' => 'Jane Doe'],
43+
['name' => 'Fake Doe'],
44+
['address' => '[email protected]', 'name' => 'Mary Doe'],
45+
])
46+
);
47+
}
48+
49+
/** @test */
50+
public function it_skips_items_with_invalid_addresses()
51+
{
52+
$this->assertEquals(
53+
'John Doe <[email protected]>, Vicky Doe <[email protected]>',
54+
to_rfc2822_email([
55+
['address' => '[email protected]', 'name' => 'John Doe'],
56+
['address' => 'jane@', 'name' => 'Jane Doe'],
57+
['address' => 'jane@example', 'name' => 'Jane Doe'],
58+
['address' => '[email protected]', 'name' => 'Vicky Doe'],
59+
['address' => null, 'name' => 'Jane Doe'],
60+
])
61+
);
62+
}
63+
64+
/** @test */
65+
public function name_is_optional_for_one_email()
66+
{
67+
$this->assertEquals('[email protected]', to_rfc2822_email(['address' => '[email protected]']));
68+
}
69+
70+
/** @test */
71+
public function name_is_optional_for_multiple_emails()
72+
{
73+
$this->assertEquals(
74+
75+
to_rfc2822_email([
76+
['address' => '[email protected]', 'name' => 'John Doe'],
77+
['address' => '[email protected]'],
78+
['address' => '[email protected]'],
79+
])
80+
);
81+
}
82+
}

0 commit comments

Comments
 (0)