Completed
Push — master ( e4f04d...c1c406 )
by Eduardo Gulias
03:34 queued 01:35
created

IsEmailFunctionTests   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
c 1
b 0
f 0
lcom 0
cbo 5
dl 0
loc 34
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testAgainstIsEmailTestSuite() 0 11 1
A isEmailTestSuite() 0 15 2
1
<?php
2
3
namespace Egulias\Tests\EmailValidator\Validation;
4
5
use Egulias\EmailValidator\EmailValidator;
6
use Egulias\EmailValidator\Validation\DNSCheckValidation;
7
use Egulias\EmailValidator\Validation\MultipleValidationWithAnd;
8
use Egulias\EmailValidator\Validation\NoRFCWarningsValidation;
9
use Egulias\EmailValidator\Validation\RFCValidation;
10
11
class IsEmailFunctionTests extends \PHPUnit_Framework_TestCase
12
{
13
    /**
14
     * @dataProvider isEmailTestSuite
15
     */
16
    public function testAgainstIsEmailTestSuite($email)
17
    {
18
        $validator = new EmailValidator();
19
        $validations = new MultipleValidationWithAnd([
20
            new NoRFCWarningsValidation(),
21
            new DNSCheckValidation()
22
        ]);
23
24
        $this->assertFalse($validator->isValid($email, $validations), "Tested email " . $email);
25
26
    }
27
28
    public function isEmailTestSuite()
29
    {
30
        $testSuite = dirname(__FILE__) . '/../../resources/is_email_tests.xml';
31
		$document = new \DOMDocument();
32
		$document->load($testSuite);
33
        $elements = $document->getElementsByTagName('test');
34
        $tests = [];
35
36
        foreach($elements as $testElement) {
37
            $childNode = $testElement->childNodes;
38
            $tests[][] = ($childNode->item(1)->getAttribute('value'));
39
        }
40
41
        return $tests;
42
    }
43
44
}
45