Passed
Branch master (d805c2)
by
unknown
02:16
created

EqualTest::testEqual()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 19
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 13
nc 1
nop 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: horat1us
5
 * Date: 5/3/17
6
 * Time: 1:28 PM
7
 */
8
9
namespace Horat1us\Tests;
10
11
12
use Horat1us\Examples\Person;
13
use Horat1us\XmlConvertibleObject;
14
15
class EqualTest extends \PHPUnit_Framework_TestCase
16
{
17
    public function testNotEqualAttributes()
18
    {
19
        $person = new Person();
20
        $person->name = 'Alexander';
21
        $person->surname = 'Unknown';
22
23
        $comparedPerson = new Person();
24
        $comparedPerson->name = 'Alexander';
25
        $comparedPerson->surname = 'Letnikow';
26
27
        $this->assertTrue($person->xmlEqualTo($person));
28
        $this->assertTrue($comparedPerson->xmlEqualTo($comparedPerson));
29
30
        $this->assertFalse($person->xmlEqualTo($comparedPerson));
31
        $this->assertFalse($comparedPerson->xmlEqualTo($person));
32
    }
33
34
    public function testNotEqualChildren()
35
    {
36
        $person = new Person();
37
        $person->name = 'Alexander';
38
        $person->surname = 'Letnikow';
39
40
        $comparedPerson = Person::fromXml($person->toXml());
41
        $comparedPerson->xmlChildren = [new XmlConvertibleObject('sample', [
42
            clone $person
43
        ])];
44
45
        $this->assertTrue($comparedPerson->xmlEqualTo($comparedPerson));
46
        $this->assertTrue($person->xmlEqualTo($person));
47
48
        $this->assertFalse($comparedPerson->xmlEqualTo($person));
49
        $this->assertFalse($person->xmlEqualTo($comparedPerson));
50
    }
51
52
    public function testEqual()
53
    {
54
        $person = new Person();
55
        $person->name = 'Alexander';
56
        $person->surname = 'Letnikow';
57
58
        $person->xmlChildren = [
59
            new Person(),
60
            $test = new XmlConvertibleObject('test')
61
        ];
62
        $test->{'a'} = 2;
63
64
        $comparedPerson = Person::fromXml($person->toXml());
65
        $this->assertTrue($person->xmlEqualTo($comparedPerson));
66
67
        $deepClonePerson = Person::fromXml($comparedPerson->toXml());
68
        $this->assertTrue($deepClonePerson->xmlEqualTo($person));
69
        $this->assertTrue($comparedPerson->xmlEqualTo($deepClonePerson));
70
    }
71
}