Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/**
3
 * PHPUnit
4
 *
5
 * Copyright (c) 2002-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 *
12
 *   * Redistributions of source code must retain the above copyright
13
 *     notice, this list of conditions and the following disclaimer.
14
 *
15
 *   * Redistributions in binary form must reproduce the above copyright
16
 *     notice, this list of conditions and the following disclaimer in
17
 *     the documentation and/or other materials provided with the
18
 *     distribution.
19
 *
20
 *   * Neither the name of Sebastian Bergmann nor the names of his
21
 *     contributors may be used to endorse or promote products derived
22
 *     from this software without specific prior written permission.
23
 *
24
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
 * POSSIBILITY OF SUCH DAMAGE.
36
 *
37
 * @category   Testing
38
 * @package    PHPUnit
39
 * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
40
 * @copyright  2002-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
41
 * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
42
 * @link       http://www.phpunit.de/
43
 * @since      File available since Release 3.0.0
44
 */
45
 
46
require_once 'PHPUnit/Framework.php';
47
 
48
PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
49
 
50
/**
51
 * Abstract base class for constraints. which are placed upon any value.
52
 *
53
 * @category   Testing
54
 * @package    PHPUnit
55
 * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>
56
 * @copyright  2002-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
57
 * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
58
 * @version    Release: 3.4.15
59
 * @link       http://www.phpunit.de/
60
 * @since      Interface available since Release 3.0.0
61
 */
62
abstract class PHPUnit_Framework_Constraint implements Countable, PHPUnit_Framework_SelfDescribing
63
{
64
    /**
65
     * Counts the number of constraint elements.
66
     *
67
     * @return integer
68
     * @since  Method available since Release 3.4.0
69
     */
70
    public function count()
71
    {
72
        return 1;
73
    }
74
 
75
    /**
76
     * Creates the appropriate exception for the constraint which can be caught
77
     * by the unit test system. This can be called if a call to evaluate()
78
     * fails.
79
     *
80
     * @param   mixed   $other The value passed to evaluate() which failed the
81
     *                         constraint check.
82
     * @param   string  $description A string with extra description of what was
83
     *                               going on while the evaluation failed.
84
     * @param   boolean $not Flag to indicate negation.
85
     * @throws  PHPUnit_Framework_ExpectationFailedException
86
     */
87
    public function fail($other, $description, $not = FALSE)
88
    {
89
        throw new PHPUnit_Framework_ExpectationFailedException(
90
          $this->failureDescription($other, $description, $not),
91
          NULL
92
        );
93
    }
94
 
95
    /**
96
     * @param mixed   $other
97
     * @param string  $description
98
     * @param boolean $not
99
     */
100
    protected function failureDescription($other, $description, $not)
101
    {
102
        $failureDescription = $this->customFailureDescription(
103
          $other, $description, $not
104
        );
105
 
106
        if ($failureDescription === NULL) {
107
            $failureDescription = sprintf(
108
              'Failed asserting that %s %s.',
109
 
110
               PHPUnit_Util_Type::toString($other),
111
               $this->toString()
112
            );
113
        }
114
 
115
        if ($not) {
116
            $failureDescription = self::negate($failureDescription);
117
        }
118
 
119
        if (!empty($description)) {
120
            $failureDescription = $description . "\n" . $failureDescription;
121
        }
122
 
123
        return $failureDescription;
124
    }
125
 
126
    /**
127
     * @param mixed   $other
128
     * @param string  $description
129
     * @param boolean $not
130
     */
131
    protected function customFailureDescription($other, $description, $not)
132
    {
133
    }
134
 
135
    /**
136
     * @param  string $string
137
     * @return string
138
     */
139
    public static function negate($string)
140
    {
141
        return str_replace(
142
          array(
143
            'contains ',
144
            'exists',
145
            'has ',
146
            'is ',
147
            'matches ',
148
            'starts with ',
149
            'ends with '
150
          ),
151
          array(
152
            'does not contain ',
153
            'does not exist',
154
            'does not have ',
155
            'is not ',
156
            'does not match ',
157
            'starts not with ',
158
            'ends not with '
159
          ),
160
          $string
161
        );
162
    }
163
 
164
    /**
165
     * Evaluates the constraint for parameter $other. Returns TRUE if the
166
     * constraint is met, FALSE otherwise.
167
     *
168
     * @param mixed $other Value or object to evaluate.
169
     * @return bool
170
     */
171
    abstract public function evaluate($other);
172
}
173
 
174
require_once 'PHPUnit/Framework/Constraint/And.php';
175
require_once 'PHPUnit/Framework/Constraint/ArrayHasKey.php';
176
require_once 'PHPUnit/Framework/Constraint/Attribute.php';
177
require_once 'PHPUnit/Framework/Constraint/ClassHasAttribute.php';
178
require_once 'PHPUnit/Framework/Constraint/ClassHasStaticAttribute.php';
179
require_once 'PHPUnit/Framework/Constraint/IsFalse.php';
180
require_once 'PHPUnit/Framework/Constraint/FileExists.php';
181
require_once 'PHPUnit/Framework/Constraint/GreaterThan.php';
182
require_once 'PHPUnit/Framework/Constraint/IsAnything.php';
183
require_once 'PHPUnit/Framework/Constraint/IsEqual.php';
184
require_once 'PHPUnit/Framework/Constraint/IsIdentical.php';
185
require_once 'PHPUnit/Framework/Constraint/IsInstanceOf.php';
186
require_once 'PHPUnit/Framework/Constraint/IsType.php';
187
require_once 'PHPUnit/Framework/Constraint/LessThan.php';
188
require_once 'PHPUnit/Framework/Constraint/Not.php';
189
require_once 'PHPUnit/Framework/Constraint/IsNull.php';
190
require_once 'PHPUnit/Framework/Constraint/ObjectHasAttribute.php';
191
require_once 'PHPUnit/Framework/Constraint/Or.php';
192
require_once 'PHPUnit/Framework/Constraint/PCREMatch.php';
193
require_once 'PHPUnit/Framework/Constraint/StringContains.php';
194
require_once 'PHPUnit/Framework/Constraint/StringStartsWith.php';
195
require_once 'PHPUnit/Framework/Constraint/StringEndsWith.php';
196
require_once 'PHPUnit/Framework/Constraint/TraversableContains.php';
197
require_once 'PHPUnit/Framework/Constraint/TraversableContainsOnly.php';
198
require_once 'PHPUnit/Framework/Constraint/IsTrue.php';
199
require_once 'PHPUnit/Framework/Constraint/Xor.php';
200
?>