File: IsEqualTest.php

package info (click to toggle)
php-hamcrest 2.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,168 kB
  • sloc: php: 6,353; makefile: 14; sh: 9
file content (102 lines) | stat: -rw-r--r-- 2,770 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
namespace Hamcrest\Core;

class DummyToStringClass
{
    private $_arg;

    public function __construct($arg)
    {
        $this->_arg = $arg;
    }

    public function __toString()
    {
        return $this->_arg;
    }
}

class IsEqualTest extends \Hamcrest\AbstractMatcherTestCase
{

    protected function createMatcher()
    {
        return \Hamcrest\Core\IsEqual::equalTo('irrelevant');
    }

    public function testComparesObjectsUsingEqualityOperator()
    {
        assertThat("hi", equalTo("hi"));
        assertThat("bye", not(equalTo("hi")));

        assertThat(1, equalTo(1));
        assertThat(1, not(equalTo(2)));

        assertThat("2", equalTo(2));
    }

    public function testCanCompareNullValues()
    {
        assertThat(null, equalTo(null));

        assertThat(null, not(equalTo('hi')));
        assertThat('hi', not(equalTo(null)));
    }

    public function testComparesTheElementsOfAnArray()
    {
        $s1 = array('a', 'b');
        $s2 = array('a', 'b');
        $s3 = array('c', 'd');
        $s4 = array('a', 'b', 'c', 'd');

        assertThat($s1, equalTo($s1));
        assertThat($s2, equalTo($s1));
        assertThat($s3, not(equalTo($s1)));
        assertThat($s4, not(equalTo($s1)));
    }

    public function testComparesTheElementsOfAnArrayOfPrimitiveTypes()
    {
        $i1 = array(1, 2);
        $i2 = array(1, 2);
        $i3 = array(3, 4);
        $i4 = array(1, 2, 3, 4);

        assertThat($i1, equalTo($i1));
        assertThat($i2, equalTo($i1));
        assertThat($i3, not(equalTo($i1)));
        assertThat($i4, not(equalTo($i1)));
    }

    public function testRecursivelyTestsElementsOfArrays()
    {
        $i1 = array(array(1, 2), array(3, 4));
        $i2 = array(array(1, 2), array(3, 4));
        $i3 = array(array(5, 6), array(7, 8));
        $i4 = array(array(1, 2, 3, 4), array(3, 4));

        assertThat($i1, equalTo($i1));
        assertThat($i2, equalTo($i1));
        assertThat($i3, not(equalTo($i1)));
        assertThat($i4, not(equalTo($i1)));
    }

    public function testIncludesTheResultOfCallingToStringOnItsArgumentInTheDescription()
    {
        $argumentDescription = 'ARGUMENT DESCRIPTION';
        $argument = new \Hamcrest\Core\DummyToStringClass($argumentDescription);
        $this->assertDescription('<' . $argumentDescription . '>', equalTo($argument));
    }

    public function testReturnsAnObviousDescriptionIfCreatedWithANestedMatcherByMistake()
    {
        $innerMatcher = equalTo('NestedMatcher');
        $this->assertDescription('<' . (string) $innerMatcher . '>', equalTo($innerMatcher));
    }

    public function testReturnsGoodDescriptionIfCreatedWithNullReference()
    {
        $this->assertDescription('null', equalTo(null));
    }
}