Passed
Push — master ( 4f9e3a...139be2 )
by Alexander
23:24
created

EqualTest::testEqual()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

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