Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
namespace Hamcrest\Core;
3
 
4
class PhpForm
5
{
6
    public function __toString()
7
    {
8
        return 'php';
9
    }
10
}
11
 
12
class JavaForm
13
{
14
    public function toString()
15
    {
16
        return 'java';
17
    }
18
}
19
 
20
class BothForms
21
{
22
    public function __toString()
23
    {
24
        return 'php';
25
    }
26
 
27
    public function toString()
28
    {
29
        return 'java';
30
    }
31
}
32
 
33
class HasToStringTest extends \Hamcrest\AbstractMatcherTest
34
{
35
 
36
    protected function createMatcher()
37
    {
38
        return \Hamcrest\Core\HasToString::hasToString('foo');
39
    }
40
 
41
    public function testMatchesWhenToStringMatches()
42
    {
43
        $this->assertMatches(
44
            hasToString(equalTo('php')),
45
            new \Hamcrest\Core\PhpForm(),
46
            'correct __toString'
47
        );
48
        $this->assertMatches(
49
            hasToString(equalTo('java')),
50
            new \Hamcrest\Core\JavaForm(),
51
            'correct toString'
52
        );
53
    }
54
 
55
    public function testPicksJavaOverPhpToString()
56
    {
57
        $this->assertMatches(
58
            hasToString(equalTo('java')),
59
            new \Hamcrest\Core\BothForms(),
60
            'correct toString'
61
        );
62
    }
63
 
64
    public function testDoesNotMatchWhenToStringDoesNotMatch()
65
    {
66
        $this->assertDoesNotMatch(
67
            hasToString(equalTo('mismatch')),
68
            new \Hamcrest\Core\PhpForm(),
69
            'incorrect __toString'
70
        );
71
        $this->assertDoesNotMatch(
72
            hasToString(equalTo('mismatch')),
73
            new \Hamcrest\Core\JavaForm(),
74
            'incorrect toString'
75
        );
76
        $this->assertDoesNotMatch(
77
            hasToString(equalTo('mismatch')),
78
            new \Hamcrest\Core\BothForms(),
79
            'incorrect __toString'
80
        );
81
    }
82
 
83
    public function testDoesNotMatchNull()
84
    {
85
        $this->assertDoesNotMatch(
86
            hasToString(equalTo('a')),
87
            null,
88
            'should not match null'
89
        );
90
    }
91
 
92
    public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo()
93
    {
94
        $this->assertMatches(
95
            hasToString(equalTo('php')),
96
            new \Hamcrest\Core\PhpForm(),
97
            'correct __toString'
98
        );
99
    }
100
 
101
    public function testHasAReadableDescription()
102
    {
103
        $this->assertDescription(
104
            'an object with toString() "php"',
105
            hasToString(equalTo('php'))
106
        );
107
    }
108
}