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.

IsBizMailTest   A
last analyzed

Complexity

Total Complexity 17

Size/Duplication

Total Lines 241
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
eloc 32
c 4
b 0
f 0
dl 0
loc 241
rs 10
wmc 17

16 Methods

Rating   Name   Duplication   Size   Complexity  
A emailAddressIsOnFreeDomain() 0 3 1
A emailAddressIsOnBusinessDomain() 0 3 1
A hasFreeDomainsListPopulated() 0 3 1
A getFreeMailDomainSamples() 0 5 1
A getEmailSamples() 0 9 2
A getBusinessMailDomainSamples() 0 5 1
A getInvalidEmailSamples() 0 5 1
A hasFreeDomainsPatternsPopulated() 0 3 1
A getDisposableDomainSamples() 0 5 1
A testisFreeMailAddressException200() 0 3 1
A testisFreeMailAddressException100() 0 3 1
A emailAddressIsValid() 0 3 1
A emailMatchesDomainPattern() 0 3 1
A emailAddressIsInvalid() 0 3 1
A getDomainPatternSamples() 0 5 1
A emailMatchesDomainIsDisposable() 0 3 1
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->assertTrue((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->assertFalse((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->assertTrue((new IsBizMail())->isFreeMailAddress($freeEmail));
95
    }
96
97
    /**
98
     * Tests IsBizMail->isFreeMailAddress() against some disposable email addresses
99
     *
100
     * @param string $disposableAddress A disposable email address, like those provided by 10minutemail.com and similar
101
     *
102
     * @dataProvider getDisposableDomainSamples
103
     * @covers      ::isFreeMailAddress
104
     * @test
105
     *
106
     * @return void
107
     */
108
    public function emailMatchesDomainIsDisposable($disposableAddress)
109
    {
110
        $this->assertTrue((new IsBizMail())->isFreeMailAddress($disposableAddress));
111
    }
112
113
    /**
114
     * Tests IsBizMail->isValid() against some business emails
115
     *
116
     * @param string $businessEmail A business email address
117
     *
118
     * @depends      emailAddressIsOnBusinessDomain
119
     * @dataProvider getBusinessMailDomainSamples
120
     * @covers      ::isValid
121
     * @test
122
     *
123
     * @return void
124
     */
125
    public function emailAddressIsValid($businessEmail)
126
    {
127
        $this->assertTrue((new IsBizMail())->isValid($businessEmail));
128
    }
129
130
    /**
131
     * Tests IsBizMail->isValid() against some invalid emails
132
     *
133
     * @param string $invalidEmail An invalid email address
134
     *
135
     * @dataProvider          getInvalidEmailSamples
136
     * @covers                ::isValid
137
     * @test
138
     *
139
     * @return void
140
     */
141
    public function emailAddressIsInvalid($invalidEmail)
142
    {
143
        $this->assertFalse((new IsBizMail())->isValid($invalidEmail));
144
    }
145
146
    /**
147
     * Tests IsBizMail->isFreeMailAddress() with email containing a wildcard
148
     *
149
     * @covers                ::isFreeMailAddress
150
     * @expectedException     InvalidArgumentException
151
     * @expectedExceptionCode 200
152
     * @test
153
     *
154
     * @return void
155
     */
156
    public function testisFreeMailAddressException200()
157
    {
158
        (new IsBizMail())->isFreeMailAddress('invalid@wildcard.*');
159
    }
160
161
    /**
162
     * Tests IsBizMail->isFreeMailAddress() against an invalid email
163
     *
164
     * @covers                ::isFreeMailAddress
165
     * @expectedException     InvalidArgumentException
166
     * @expectedExceptionCode 100
167
     * @test
168
     *
169
     * @return void
170
     */
171
    public function testisFreeMailAddressException100()
172
    {
173
        (new IsBizMail())->isFreeMailAddress('notAnEmail');
174
    }
175
176
    /**
177
     * Provides a list of free email addresses
178
     * @doesNotPerformAssertions
179
     * @coversNothing
180
     *
181
     * @return array
182
     */
183
    public function getFreeMailDomainSamples()
184
    {
185
        return array_map(function ($freeEmail) {
186
            return array($freeEmail);
187
        }, self::getEmailSamples()->free);
188
    }
189
190
    /**
191
     * Provides a list of business email addresses
192
     * @doesNotPerformAssertions
193
     * @coversNothing
194
     *
195
     * @return array
196
     */
197
    public function getBusinessMailDomainSamples()
198
    {
199
        return array_map(function ($businessEmail) {
200
            return array($businessEmail);
201
        }, self::getEmailSamples()->business);
202
    }
203
204
    /**
205
     * Provides a list of business email addresses
206
     * @doesNotPerformAssertions
207
     * @coversNothing
208
     *
209
     * @return array
210
     */
211
    public function getDomainPatternSamples()
212
    {
213
        return array_map(function ($patternDomains) {
214
            return array($patternDomains);
215
        }, self::getEmailSamples()->pattern);
216
    }
217
218
    /**
219
     * Provides a list of disposable email addresses
220
     * @doesNotPerformAssertions
221
     * @coversNothing
222
     *
223
     * @return array
224
     */
225
    public function getDisposableDomainSamples()
226
    {
227
        return array_map(function ($disposableDomains) {
228
            return array($disposableDomains);
229
        }, self::getEmailSamples()->disposable);
230
    }
231
232
    /**
233
     * Provides a list of invalid email addresses
234
     * @doesNotPerformAssertions
235
     * @coversNothing
236
     *
237
     * @return array
238
     */
239
    public function getInvalidEmailSamples()
240
    {
241
        return array_map(function ($invalidEmails) {
242
            return array($invalidEmails);
243
        }, self::getEmailSamples()->invalid);
244
    }
245
246
    /**
247
     * Provides an object containing lists of sample free, business etc domains
248
     * @doesNotPerformAssertions
249
     * @coversNothing
250
     *
251
     * @return object
252
     */
253
    public static function getEmailSamples()
254
    {
255
        if (is_null(self::$emailSamples)) {
256
            self::$emailSamples = json_decode(
257
                file_get_contents(sprintf("%s/assets/email-test-samples.json", dirname(__DIR__))),
258
                false
259
            );
260
        }
261
        return self::$emailSamples;
262
    }
263
}
264