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

EqualTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 3
dl 0
loc 57
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testNotEqualAttributes() 0 16 1
A testNotEqualChildren() 0 17 1
A testEqual() 0 19 1
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
}