GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( b4533d...393f6e )
by Zhmayev
02:48
created

IsBizMailTest::emailAddressIsInvalid()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Test case for IsBizMail class
4
 *
5
 * @category PHPUnit
6
 * @package  IsBizMail
7
 * @author   Zhmayev Yaroslav <[email protected]>
8
 * @license  MIT https://opensource.org/licenses/MIT
9
 * @link     https://github.com/salaros/free-mailchecker
10
 */
11
12
namespace Salaros\Email;
13
14
use Salaros\Email\IsBizMail;
15
use PHPUnit\Framework\TestCase;
16
17
/**
18
 * Test case for IsBizMail class
19
 * @coversDefaultClass \Salaros\Email\IsBizMail
20
 */
21
final class IsBizMailTest extends TestCase
22
{
23
    private static $emailSamples;
24
25
    /**
26
     * Check if any free domain is defined
27
     * @covers      ::getFreeDomains
28
     * @test
29
     *
30
     * @return void
31
     */
32
    public function hasFreeDomainsListPopulated()
33
    {
34
        $this->assertNotEmpty((new IsBizMail())->getFreeDomains());
35
    }
36
37
    /**
38
     * Check if any domain pattern is defined
39
     * @covers      ::getFreeDomainPatterns
40
     * @test
41
     *
42
     * @return void
43
     */
44
    public function hasFreeDomainsPatternsPopulated()
45
    {
46
        $this->assertNotEmpty((new IsBizMail())->getFreeDomainPatterns());
47
    }
48
49
    /**
50
     * Tests IsBizMail->isFreeMailAddress() against some free emails
51
     *
52
     * @param string $freeEmail A free email address
53
     *
54
     * @dataProvider getFreeMailDomainSamples
55
     * @covers      ::isFreeMailAddress
56
     * @test
57
     *
58
     * @return void
59
     */
60
    public function emailAddressIsOnFreeDomain($freeEmail)
61
    {
62
        $this->assertSame(true, (new IsBizMail())->isFreeMailAddress($freeEmail));
63
    }
64
65
    /**
66
     * Tests IsBizMail->isFreeMailAddress() against some business emails
67
     *
68
     * @param string $businessEmail A business email address
69
     *
70
     * @dataProvider getBusinessMailDomainSamples
71
     * @covers      ::isFreeMailAddress
72
     * @test
73
     *
74
     * @return void
75
     */
76
    public function emailAddressIsOnBusinessDomain($businessEmail)
77
    {
78
        $this->assertSame(false, (new IsBizMail())->isFreeMailAddress($businessEmail));
79
    }
80
81
    /**
82
     * Tests IsBizMail->isFreeMailAddress() against some domain patterns
83
     *
84
     * @param string $freeEmail A free email address
85
     *
86
     * @dataProvider getDomainPatternSamples
87
     * @covers      ::isFreeMailAddress
88
     * @test
89
     *
90
     * @return void
91
     */
92
    public function emailMatchesDomainPattern($freeEmail)
93
    {
94
        $this->assertSame(true, (new IsBizMail())->isFreeMailAddress($freeEmail));
95
    }
96
97
    /**
98
     * Tests IsBizMail->isValid() against some business emails
99
     *
100
     * @param string $businessEmail A business email address
101
     *
102
     * @depends      emailAddressIsOnBusinessDomain
103
     * @dataProvider getBusinessMailDomainSamples
104
     * @covers      ::isValid
105
     * @test
106
     *
107
     * @return void
108
     */
109
    public function emailAddressIsValid($businessEmail)
110
    {
111
        $this->assertSame(true, (new IsBizMail())->isValid($businessEmail));
112
    }
113
114
    /**
115
     * Tests IsBizMail->isValid() against some invalid emails
116
     *
117
     * @param string $invalidEmail An invalid email address
118
     *
119
     * @dataProvider          getInvalidEmailSamples
120
     * @covers                ::isValid
121
     * @test
122
     *
123
     * @return void
124
     */
125
    public function emailAddressIsInvalid($invalidEmail)
126
    {
127
        $this->assertSame(false, (new IsBizMail())->isValid($invalidEmail));
128
    }
129
130
    /**
131
     * Tests IsBizMail->isFreeMailAddress() with email containing a wildcard
132
     *
133
     * @covers                ::isFreeMailAddress
134
     * @expectedException     InvalidArgumentException
135
     * @expectedExceptionCode 200
136
     * @test
137
     *
138
     * @return void
139
     */
140
    public function testisFreeMailAddressException200()
141
    {
142
        (new IsBizMail())->isFreeMailAddress('invalid@wildcard.*');
143
    }
144
145
    /**
146
     * Tests IsBizMail->isFreeMailAddress() against an invalid email
147
     *
148
     * @covers                ::isFreeMailAddress
149
     * @expectedException     InvalidArgumentException
150
     * @expectedExceptionCode 100
151
     * @test
152
     *
153
     * @return void
154
     */
155
    public function testisFreeMailAddressException100()
156
    {
157
        (new IsBizMail())->isFreeMailAddress('notAnEmail');
158
    }
159
160
    /**
161
     * Provides a list of free email addresses
162
     * @doesNotPerformAssertions
163
     * @coversNothing
164
     *
165
     * @return array
166
     */
167
    public function getFreeMailDomainSamples()
168
    {
169
        return array_map(function ($freeEmail) {
170
            return array($freeEmail);
171
        }, self::getEmailSamples()->free);
172
    }
173
174
    /**
175
     * Provides a list of business email addresses
176
     * @doesNotPerformAssertions
177
     * @coversNothing
178
     *
179
     * @return array
180
     */
181
    public function getBusinessMailDomainSamples()
182
    {
183
        return array_map(function ($businessEmail) {
184
            return array($businessEmail);
185
        }, self::getEmailSamples()->business);
186
    }
187
188
    /**
189
     * Provides a list of business email addresses
190
     * @doesNotPerformAssertions
191
     * @coversNothing
192
     *
193
     * @return array
194
     */
195
    public function getDomainPatternSamples()
196
    {
197
        return array_map(function ($patternDomains) {
198
            return array($patternDomains);
199
        }, self::getEmailSamples()->pattern);
200
    }
201
202
    /**
203
     * Provides a list of invalid email addresses
204
     * @doesNotPerformAssertions
205
     * @coversNothing
206
     *
207
     * @return array
208
     */
209
    public function getInvalidEmailSamples()
210
    {
211
        return array_map(function ($invalidEmails) {
212
            return array($invalidEmails);
213
        }, self::getEmailSamples()->invalid);
214
    }
215
216
    /**
217
     * Provides an object containing lists of sample free, business etc domains
218
     * @doesNotPerformAssertions
219
     * @coversNothing
220
     *
221
     * @return object
222
     */
223
    public static function getEmailSamples()
224
    {
225
        if (is_null(self::$emailSamples)) {
226
            self::$emailSamples = json_decode(
227
                file_get_contents(sprintf("%s/assets/emailSamples.json", dirname(__DIR__))),
228
                false
229
            );
230
        }
231
        return self::$emailSamples;
232
    }
233
}
234