* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ class Framework_ConstraintTest extends PHPUnit_Framework_TestCase { public function testConstraintArrayHasKey() { $constraint = PHPUnit_Framework_Assert::arrayHasKey(0); $this->assertFalse($constraint->evaluate([], '', true)); $this->assertEquals('has the key 0', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate([]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintArrayHasKey2() { $constraint = PHPUnit_Framework_Assert::arrayHasKey(0); try { $constraint->evaluate([], 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayNotHasKey() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::arrayHasKey(0) ); $this->assertFalse($constraint->evaluate([0 => 1], '', true)); $this->assertEquals('does not have the key 0', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate([0 => 1]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayNotHasKey2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::arrayHasKey(0) ); try { $constraint->evaluate([0], 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsReadable() { $constraint = PHPUnit_Framework_Assert::isReadable(); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertEquals('is readable', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsWritable() { $constraint = PHPUnit_Framework_Assert::isWritable(); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertEquals('is writable', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintDirectoryExists() { $constraint = PHPUnit_Framework_Assert::directoryExists(); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertEquals('directory exists', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintFileExists() { $constraint = PHPUnit_Framework_Assert::fileExists(); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertEquals('file exists', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintFileExists2() { $constraint = PHPUnit_Framework_Assert::fileExists(); try { $constraint->evaluate('foo', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintFileNotExists() { $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php'; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::fileExists() ); $this->assertFalse($constraint->evaluate($file, '', true)); $this->assertEquals('file does not exist', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate($file); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintFileNotExists2() { $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php'; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::fileExists() ); try { $constraint->evaluate($file, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintGreaterThan() { $constraint = PHPUnit_Framework_Assert::greaterThan(1); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertTrue($constraint->evaluate(2, '', true)); $this->assertEquals('is greater than 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(0); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintGreaterThan2() { $constraint = PHPUnit_Framework_Assert::greaterThan(1); try { $constraint->evaluate(0, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotGreaterThan() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::greaterThan(1) ); $this->assertTrue($constraint->evaluate(1, '', true)); $this->assertEquals('is not greater than 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(2); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotGreaterThan2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::greaterThan(1) ); try { $constraint->evaluate(2, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintGreaterThanOrEqual() { $constraint = PHPUnit_Framework_Assert::greaterThanOrEqual(1); $this->assertTrue($constraint->evaluate(1, '', true)); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertEquals('is equal to 1 or is greater than 1', $constraint->toString()); $this->assertCount(2, $constraint); try { $constraint->evaluate(0); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintGreaterThanOrEqual2() { $constraint = PHPUnit_Framework_Assert::greaterThanOrEqual(1); try { $constraint->evaluate(0, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotGreaterThanOrEqual() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::greaterThanOrEqual(1) ); $this->assertFalse($constraint->evaluate(1, '', true)); $this->assertEquals('not( is equal to 1 or is greater than 1 )', $constraint->toString()); $this->assertCount(2, $constraint); try { $constraint->evaluate(1); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotGreaterThanOrEqual2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::greaterThanOrEqual(1) ); try { $constraint->evaluate(1, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsAnything() { $constraint = PHPUnit_Framework_Assert::anything(); $this->assertTrue($constraint->evaluate(null, '', true)); $this->assertNull($constraint->evaluate(null)); $this->assertEquals('is anything', $constraint->toString()); $this->assertCount(0, $constraint); } public function testConstraintNotIsAnything() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::anything() ); $this->assertFalse($constraint->evaluate(null, '', true)); $this->assertEquals('is not anything', $constraint->toString()); $this->assertCount(0, $constraint); try { $constraint->evaluate(null); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsEqual() { $constraint = PHPUnit_Framework_Assert::equalTo(1); $this->assertTrue($constraint->evaluate(1, '', true)); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertEquals('is equal to 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(0); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function isEqualProvider() { $a = new stdClass; $a->foo = 'bar'; $b = new stdClass; $ahash = spl_object_hash($a); $bhash = spl_object_hash($b); $c = new stdClass; $c->foo = 'bar'; $c->int = 1; $c->array = [0, [1], [2], 3]; $c->related = new stdClass; $c->related->foo = "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk"; $c->self = $c; $c->c = $c; $d = new stdClass; $d->foo = 'bar'; $d->int = 2; $d->array = [0, [4], [2], 3]; $d->related = new stdClass; $d->related->foo = "a\np\nc\nd\ne\nf\ng\nh\ni\nw\nk"; $d->self = $d; $d->c = $c; $storage1 = new SplObjectStorage; $storage1->attach($a); $storage1->attach($b); $storage2 = new SplObjectStorage; $storage2->attach($b); $storage1hash = spl_object_hash($storage1); $storage2hash = spl_object_hash($storage2); $dom1 = new DOMDocument; $dom1->preserveWhiteSpace = false; $dom1->loadXML(''); $dom2 = new DOMDocument; $dom2->preserveWhiteSpace = false; $dom2->loadXML(''); $data = [ [1, 0, << 0 + 0 => 1 ) EOF ], [[true], ['true'], << true + 0 => 'true' ) EOF ], [[0, [1], [2], 3], [0, [4], [2], 3], << 0 1 => Array ( - 0 => 1 + 0 => 4 ) 2 => Array (...) 3 => 3 ) EOF ], [$a, [0], << 'bar' ) EOF ], [$c, $d, << 'bar' - 'int' => 1 + 'int' => 2 'array' => Array ( 0 => 0 1 => Array ( - 0 => 1 + 0 => 4 @@ @@ 'foo' => 'a - b + p @@ @@ i - j + w k' ) 'self' => stdClass Object (...) 'c' => stdClass Object (...) ) EOF ], [$dom1, $dom2, << - + + + EOF ], [ new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')), new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')), << Array &0 ( - 'obj' => stdClass Object &$ahash ( - 'foo' => 'bar' - ) - 'inf' => null - ) - '$bhash' => Array &1 ( +SplObjectStorage Object &$storage2hash ( + '$bhash' => Array &0 ( 'obj' => stdClass Object &$bhash () 'inf' => null ) ) EOF ]; } else { $data[] = [$storage1, $storage2, << Array &0 ( - 'obj' => stdClass Object &$ahash ( - 'foo' => 'bar' - ) - 'inf' => null - ) - '$bhash' => Array &1 ( +SplObjectStorage Object &$storage2hash ( + '$bhash' => Array &0 ( 'obj' => stdClass Object &$bhash () 'inf' => null ) ) EOF ]; } return $data; } /** * @dataProvider isEqualProvider */ public function testConstraintIsEqual2($expected, $actual, $message) { $constraint = PHPUnit_Framework_Assert::equalTo($expected); try { $constraint->evaluate($actual, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( "custom message\n$message", $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e)) ); return; } $this->fail(); } public function testConstraintIsNotEqual() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::equalTo(1) ); $this->assertTrue($constraint->evaluate(0, '', true)); $this->assertFalse($constraint->evaluate(1, '', true)); $this->assertEquals('is not equal to 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(1); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsNotEqual2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::equalTo(1) ); try { $constraint->evaluate(1, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsIdentical() { $a = new stdClass; $b = new stdClass; $constraint = PHPUnit_Framework_Assert::identicalTo($a); $this->assertFalse($constraint->evaluate($b, '', true)); $this->assertTrue($constraint->evaluate($a, '', true)); $this->assertEquals('is identical to an object of class "stdClass"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate($b); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsIdentical2() { $a = new stdClass; $b = new stdClass; $constraint = PHPUnit_Framework_Assert::identicalTo($a); try { $constraint->evaluate($b, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsIdentical3() { $constraint = PHPUnit_Framework_Assert::identicalTo('a'); try { $constraint->evaluate('b', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNotIdentical() { $a = new stdClass; $b = new stdClass; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::identicalTo($a) ); $this->assertTrue($constraint->evaluate($b, '', true)); $this->assertFalse($constraint->evaluate($a, '', true)); $this->assertEquals('is not identical to an object of class "stdClass"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate($a); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e)) ); return; } $this->fail(); } public function testConstraintIsNotIdentical2() { $a = new stdClass; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::identicalTo($a) ); try { $constraint->evaluate($a, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNotIdentical3() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::identicalTo('a') ); try { $constraint->evaluate('a', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e)) ); return; } $this->fail(); } public function testConstraintIsInstanceOf() { $constraint = PHPUnit_Framework_Assert::isInstanceOf('Exception'); $this->assertFalse($constraint->evaluate(new stdClass, '', true)); $this->assertTrue($constraint->evaluate(new Exception, '', true)); $this->assertEquals('is instance of class "Exception"', $constraint->toString()); $this->assertCount(1, $constraint); $interfaceConstraint = PHPUnit_Framework_Assert::isInstanceOf('Countable'); $this->assertFalse($interfaceConstraint->evaluate(new stdClass, '', true)); $this->assertTrue($interfaceConstraint->evaluate(new ArrayObject, '', true)); $this->assertEquals('is instance of interface "Countable"', $interfaceConstraint->toString()); try { $constraint->evaluate(new stdClass); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsInstanceOf2() { $constraint = PHPUnit_Framework_Assert::isInstanceOf('Exception'); try { $constraint->evaluate(new stdClass, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNotInstanceOf() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isInstanceOf('stdClass') ); $this->assertFalse($constraint->evaluate(new stdClass, '', true)); $this->assertTrue($constraint->evaluate(new Exception, '', true)); $this->assertEquals('is not instance of class "stdClass"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(new stdClass); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsNotInstanceOf2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isInstanceOf('stdClass') ); try { $constraint->evaluate(new stdClass, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsType() { $constraint = PHPUnit_Framework_Assert::isType('string'); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertTrue($constraint->evaluate('', '', true)); $this->assertEquals('is of type "string"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(new stdClass); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertStringMatchesFormat(<<trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e)) ); return; } $this->fail(); } public function testConstraintIsType2() { $constraint = PHPUnit_Framework_Assert::isType('string'); try { $constraint->evaluate(new stdClass, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertStringMatchesFormat(<<trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e)) ); return; } $this->fail(); } public function resources() { $fh = fopen(__FILE__, 'r'); fclose($fh); return [ 'open resource' => [fopen(__FILE__, 'r')], 'closed resource' => [$fh], ]; } /** * @dataProvider resources */ public function testConstraintIsResourceTypeEvaluatesCorrectlyWithResources($resource) { $constraint = PHPUnit_Framework_Assert::isType('resource'); $this->assertTrue($constraint->evaluate($resource, '', true)); @fclose($resource); } public function testConstraintIsNotType() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isType('string') ); $this->assertTrue($constraint->evaluate(0, '', true)); $this->assertFalse($constraint->evaluate('', '', true)); $this->assertEquals('is not of type "string"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(''); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsNotType2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isType('string') ); try { $constraint->evaluate('', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNull() { $constraint = PHPUnit_Framework_Assert::isNull(); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertTrue($constraint->evaluate(null, '', true)); $this->assertEquals('is null', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(0); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNull2() { $constraint = PHPUnit_Framework_Assert::isNull(); try { $constraint->evaluate(0, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNotNull() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isNull() ); $this->assertFalse($constraint->evaluate(null, '', true)); $this->assertTrue($constraint->evaluate(0, '', true)); $this->assertEquals('is not null', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(null); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintIsNotNull2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::isNull() ); try { $constraint->evaluate(null, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintLessThan() { $constraint = PHPUnit_Framework_Assert::lessThan(1); $this->assertTrue($constraint->evaluate(0, '', true)); $this->assertFalse($constraint->evaluate(1, '', true)); $this->assertEquals('is less than 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(1); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintLessThan2() { $constraint = PHPUnit_Framework_Assert::lessThan(1); try { $constraint->evaluate(1, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotLessThan() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::lessThan(1) ); $this->assertTrue($constraint->evaluate(1, '', true)); $this->assertFalse($constraint->evaluate(0, '', true)); $this->assertEquals('is not less than 1', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(0); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotLessThan2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::lessThan(1) ); try { $constraint->evaluate(0, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintLessThanOrEqual() { $constraint = PHPUnit_Framework_Assert::lessThanOrEqual(1); $this->assertTrue($constraint->evaluate(1, '', true)); $this->assertFalse($constraint->evaluate(2, '', true)); $this->assertEquals('is equal to 1 or is less than 1', $constraint->toString()); $this->assertCount(2, $constraint); try { $constraint->evaluate(2); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintCallback() { $closureReflect = function ($parameter) { return $parameter; }; $closureWithoutParameter = function () { return true; }; $constraint = PHPUnit_Framework_Assert::callback($closureWithoutParameter); $this->assertTrue($constraint->evaluate('', '', true)); $constraint = PHPUnit_Framework_Assert::callback($closureReflect); $this->assertTrue($constraint->evaluate(true, '', true)); $this->assertFalse($constraint->evaluate(false, '', true)); $callback = [$this, 'callbackReturningTrue']; $constraint = PHPUnit_Framework_Assert::callback($callback); $this->assertTrue($constraint->evaluate(false, '', true)); $callback = ['Framework_ConstraintTest', 'staticCallbackReturningTrue']; $constraint = PHPUnit_Framework_Assert::callback($callback); $this->assertTrue($constraint->evaluate(null, '', true)); $this->assertEquals('is accepted by specified callback', $constraint->toString()); } /** * @expectedException PHPUnit_Framework_ExpectationFailedException * @expectedExceptionMessage Failed asserting that 'This fails' is accepted by specified callback. */ public function testConstraintCallbackFailure() { $constraint = PHPUnit_Framework_Assert::callback(function () { return false; }); $constraint->evaluate('This fails'); } public function callbackReturningTrue() { return true; } public static function staticCallbackReturningTrue() { return true; } public function testConstraintLessThanOrEqual2() { $constraint = PHPUnit_Framework_Assert::lessThanOrEqual(1); try { $constraint->evaluate(2, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotLessThanOrEqual() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::lessThanOrEqual(1) ); $this->assertTrue($constraint->evaluate(2, '', true)); $this->assertFalse($constraint->evaluate(1, '', true)); $this->assertEquals('not( is equal to 1 or is less than 1 )', $constraint->toString()); $this->assertCount(2, $constraint); try { $constraint->evaluate(1); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotLessThanOrEqual2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::lessThanOrEqual(1) ); try { $constraint->evaluate(1, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintClassHasAttribute() { $constraint = PHPUnit_Framework_Assert::classHasAttribute('privateAttribute'); $this->assertTrue($constraint->evaluate('ClassWithNonPublicAttributes', '', true)); $this->assertFalse($constraint->evaluate('stdClass', '', true)); $this->assertEquals('has attribute "privateAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('stdClass'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintClassHasAttribute2() { $constraint = PHPUnit_Framework_Assert::classHasAttribute('privateAttribute'); try { $constraint->evaluate('stdClass', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintClassNotHasAttribute() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::classHasAttribute('privateAttribute') ); $this->assertTrue($constraint->evaluate('stdClass', '', true)); $this->assertFalse($constraint->evaluate('ClassWithNonPublicAttributes', '', true)); $this->assertEquals('does not have attribute "privateAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('ClassWithNonPublicAttributes'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintClassNotHasAttribute2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::classHasAttribute('privateAttribute') ); try { $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintClassHasStaticAttribute() { $constraint = PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute'); $this->assertTrue($constraint->evaluate('ClassWithNonPublicAttributes', '', true)); $this->assertFalse($constraint->evaluate('stdClass', '', true)); $this->assertEquals('has static attribute "privateStaticAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('stdClass'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintClassHasStaticAttribute2() { $constraint = PHPUnit_Framework_Assert::classHasStaticAttribute('foo'); try { $constraint->evaluate('stdClass', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintClassNotHasStaticAttribute() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute') ); $this->assertTrue($constraint->evaluate('stdClass', '', true)); $this->assertFalse($constraint->evaluate('ClassWithNonPublicAttributes', '', true)); $this->assertEquals('does not have static attribute "privateStaticAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('ClassWithNonPublicAttributes'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintClassNotHasStaticAttribute2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute') ); try { $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintObjectHasAttribute() { $constraint = PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute'); $this->assertTrue($constraint->evaluate(new ClassWithNonPublicAttributes, '', true)); $this->assertFalse($constraint->evaluate(new stdClass, '', true)); $this->assertEquals('has attribute "privateAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(new stdClass); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintObjectHasAttribute2() { $constraint = PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute'); try { $constraint->evaluate(new stdClass, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintObjectNotHasAttribute() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute') ); $this->assertTrue($constraint->evaluate(new stdClass, '', true)); $this->assertFalse($constraint->evaluate(new ClassWithNonPublicAttributes, '', true)); $this->assertEquals('does not have attribute "privateAttribute"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(new ClassWithNonPublicAttributes); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintObjectNotHasAttribute2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute') ); try { $constraint->evaluate(new ClassWithNonPublicAttributes, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintPCREMatch() { $constraint = PHPUnit_Framework_Assert::matchesRegularExpression('/foo/'); $this->assertFalse($constraint->evaluate('barbazbar', '', true)); $this->assertTrue($constraint->evaluate('barfoobar', '', true)); $this->assertEquals('matches PCRE pattern "/foo/"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('barbazbar'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintPCREMatch2() { $constraint = PHPUnit_Framework_Assert::matchesRegularExpression('/foo/'); try { $constraint->evaluate('barbazbar', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintPCRENotMatch() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::matchesRegularExpression('/foo/') ); $this->assertTrue($constraint->evaluate('barbazbar', '', true)); $this->assertFalse($constraint->evaluate('barfoobar', '', true)); $this->assertEquals('does not match PCRE pattern "/foo/"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('barfoobar'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintPCRENotMatch2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::matchesRegularExpression('/foo/') ); try { $constraint->evaluate('barfoobar', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals(<<fail(); } public function testConstraintStringMatches() { $constraint = PHPUnit_Framework_Assert::matches('*%c*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('***', '', true)); $this->assertEquals('matches PCRE pattern "/^\*.\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringMatches2() { $constraint = PHPUnit_Framework_Assert::matches('*%s*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('***', '', true)); $this->assertEquals('matches PCRE pattern "/^\*[^\r\n]+\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringMatches3() { $constraint = PHPUnit_Framework_Assert::matches('*%i*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('*0*', '', true)); $this->assertEquals('matches PCRE pattern "/^\*[+-]?\d+\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringMatches4() { $constraint = PHPUnit_Framework_Assert::matches('*%d*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('*0*', '', true)); $this->assertEquals('matches PCRE pattern "/^\*\d+\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringMatches5() { $constraint = PHPUnit_Framework_Assert::matches('*%x*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('*0f0f0f*', '', true)); $this->assertEquals('matches PCRE pattern "/^\*[0-9a-fA-F]+\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringMatches6() { $constraint = PHPUnit_Framework_Assert::matches('*%f*'); $this->assertFalse($constraint->evaluate('**', '', true)); $this->assertTrue($constraint->evaluate('*1.0*', '', true)); $this->assertEquals('matches PCRE pattern "/^\*[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?\*$/s"', $constraint->toString()); $this->assertCount(1, $constraint); } public function testConstraintStringStartsWith() { $constraint = PHPUnit_Framework_Assert::stringStartsWith('prefix'); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertTrue($constraint->evaluate('prefixfoo', '', true)); $this->assertEquals('starts with "prefix"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringStartsWith2() { $constraint = PHPUnit_Framework_Assert::stringStartsWith('prefix'); try { $constraint->evaluate('foo', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringStartsNotWith() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringStartsWith('prefix') ); $this->assertTrue($constraint->evaluate('foo', '', true)); $this->assertFalse($constraint->evaluate('prefixfoo', '', true)); $this->assertEquals('starts not with "prefix"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('prefixfoo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringStartsNotWith2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringStartsWith('prefix') ); try { $constraint->evaluate('prefixfoo', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringContains() { $constraint = PHPUnit_Framework_Assert::stringContains('foo'); $this->assertFalse($constraint->evaluate('barbazbar', '', true)); $this->assertTrue($constraint->evaluate('barfoobar', '', true)); $this->assertEquals('contains "foo"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('barbazbar'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringContainsWhenIgnoreCase() { $constraint = PHPUnit_Framework_Assert::stringContains('oryginał', true); $this->assertFalse($constraint->evaluate('oryginal', '', true)); $this->assertTrue($constraint->evaluate('ORYGINAŁ', '', true)); $this->assertTrue($constraint->evaluate('oryginał', '', true)); $this->assertEquals('contains "oryginał"', $constraint->toString()); $this->assertEquals(1, count($constraint)); try { $constraint->evaluate('oryginal'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringContainsForUtf8StringWhenNotIgnoreCase() { $constraint = PHPUnit_Framework_Assert::stringContains('oryginał', false); $this->assertFalse($constraint->evaluate('oryginal', '', true)); $this->assertFalse($constraint->evaluate('ORYGINAŁ', '', true)); $this->assertTrue($constraint->evaluate('oryginał', '', true)); $this->assertEquals('contains "oryginał"', $constraint->toString()); $this->assertEquals(1, count($constraint)); try { $constraint->evaluate('oryginal'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringContains2() { $constraint = PHPUnit_Framework_Assert::stringContains('foo'); try { $constraint->evaluate('barbazbar', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringNotContains() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringContains('foo') ); $this->assertTrue($constraint->evaluate('barbazbar', '', true)); $this->assertFalse($constraint->evaluate('barfoobar', '', true)); $this->assertEquals('does not contain "foo"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('barfoobar'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringNotContainsWhenIgnoreCase() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringContains('oryginał') ); $this->assertTrue($constraint->evaluate('original', '', true)); $this->assertFalse($constraint->evaluate('ORYGINAŁ', '', true)); $this->assertFalse($constraint->evaluate('oryginał', '', true)); $this->assertEquals('does not contain "oryginał"', $constraint->toString()); $this->assertEquals(1, count($constraint)); try { $constraint->evaluate('ORYGINAŁ'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringNotContainsForUtf8StringWhenNotIgnoreCase() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringContains('oryginał', false) ); $this->assertTrue($constraint->evaluate('original', '', true)); $this->assertTrue($constraint->evaluate('ORYGINAŁ', '', true)); $this->assertFalse($constraint->evaluate('oryginał', '', true)); $this->assertEquals('does not contain "oryginał"', $constraint->toString()); $this->assertEquals(1, count($constraint)); try { $constraint->evaluate('oryginał'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringNotContains2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringContains('foo') ); try { $constraint->evaluate('barfoobar', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringEndsWith() { $constraint = PHPUnit_Framework_Assert::stringEndsWith('suffix'); $this->assertFalse($constraint->evaluate('foo', '', true)); $this->assertTrue($constraint->evaluate('foosuffix', '', true)); $this->assertEquals('ends with "suffix"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foo'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringEndsWith2() { $constraint = PHPUnit_Framework_Assert::stringEndsWith('suffix'); try { $constraint->evaluate('foo', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringEndsNotWith() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringEndsWith('suffix') ); $this->assertTrue($constraint->evaluate('foo', '', true)); $this->assertFalse($constraint->evaluate('foosuffix', '', true)); $this->assertEquals('ends not with "suffix"', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate('foosuffix'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintStringEndsNotWith2() { $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::stringEndsWith('suffix') ); try { $constraint->evaluate('foosuffix', 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayContainsCheckForObjectIdentity() { // Check for primitive type. $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo', true, true); $this->assertFalse($constraint->evaluate([0], '', true)); $this->assertFalse($constraint->evaluate([true], '', true)); // Default case. $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo'); $this->assertTrue($constraint->evaluate([0], '', true)); $this->assertTrue($constraint->evaluate([true], '', true)); } public function testConstraintArrayContains() { $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo'); $this->assertFalse($constraint->evaluate(['bar'], '', true)); $this->assertTrue($constraint->evaluate(['foo'], '', true)); $this->assertEquals("contains 'foo'", $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(['bar']); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayContains2() { $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo'); try { $constraint->evaluate(['bar'], 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayNotContains() { $constraint = PHPUnit_Framework_Assert::logicalNot( new PHPUnit_Framework_Constraint_TraversableContains('foo') ); $this->assertTrue($constraint->evaluate(['bar'], '', true)); $this->assertFalse($constraint->evaluate(['foo'], '', true)); $this->assertEquals("does not contain 'foo'", $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(['foo']); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintArrayNotContains2() { $constraint = PHPUnit_Framework_Assert::logicalNot( new PHPUnit_Framework_Constraint_TraversableContains('foo') ); try { $constraint->evaluate(['foo'], 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintSplObjectStorageContains() { $object = new StdClass; $constraint = new PHPUnit_Framework_Constraint_TraversableContains($object); $this->assertStringMatchesFormat('contains stdClass Object &%s ()', $constraint->toString()); $storage = new SplObjectStorage; $this->assertFalse($constraint->evaluate($storage, '', true)); $storage->attach($object); $this->assertTrue($constraint->evaluate($storage, '', true)); try { $constraint->evaluate(new SplObjectStorage); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertStringMatchesFormat( <<fail(); } public function testConstraintSplObjectStorageContains2() { $object = new StdClass; $constraint = new PHPUnit_Framework_Constraint_TraversableContains($object); try { $constraint->evaluate(new SplObjectStorage, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertStringMatchesFormat( <<fail(); } public function testAttributeEqualTo() { $object = new ClassWithNonPublicAttributes; $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 1); $this->assertTrue($constraint->evaluate($object, '', true)); $this->assertEquals('attribute "foo" is equal to 1', $constraint->toString()); $this->assertCount(1, $constraint); $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 2); $this->assertFalse($constraint->evaluate($object, '', true)); try { $constraint->evaluate($object); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testAttributeEqualTo2() { $object = new ClassWithNonPublicAttributes; $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 2); try { $constraint->evaluate($object, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testAttributeNotEqualTo() { $object = new ClassWithNonPublicAttributes; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::attributeEqualTo('foo', 2) ); $this->assertTrue($constraint->evaluate($object, '', true)); $this->assertEquals('attribute "foo" is not equal to 2', $constraint->toString()); $this->assertCount(1, $constraint); $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::attributeEqualTo('foo', 1) ); $this->assertFalse($constraint->evaluate($object, '', true)); try { $constraint->evaluate($object); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testAttributeNotEqualTo2() { $object = new ClassWithNonPublicAttributes; $constraint = PHPUnit_Framework_Assert::logicalNot( PHPUnit_Framework_Assert::attributeEqualTo('foo', 1) ); try { $constraint->evaluate($object, 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsEmpty() { $constraint = new PHPUnit_Framework_Constraint_IsEmpty; $this->assertFalse($constraint->evaluate(['foo'], '', true)); $this->assertTrue($constraint->evaluate([], '', true)); $this->assertFalse($constraint->evaluate(new ArrayObject(['foo']), '', true)); $this->assertTrue($constraint->evaluate(new ArrayObject([]), '', true)); $this->assertEquals('is empty', $constraint->toString()); $this->assertCount(1, $constraint); try { $constraint->evaluate(['foo']); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintIsEmpty2() { $constraint = new PHPUnit_Framework_Constraint_IsEmpty; try { $constraint->evaluate(['foo'], 'custom message'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintCountWithAnArray() { $constraint = new PHPUnit_Framework_Constraint_Count(5); $this->assertTrue($constraint->evaluate([1, 2, 3, 4, 5], '', true)); $this->assertFalse($constraint->evaluate([1, 2, 3, 4], '', true)); } public function testConstraintCountWithAnIteratorWhichDoesNotImplementCountable() { $constraint = new PHPUnit_Framework_Constraint_Count(5); $this->assertTrue($constraint->evaluate(new TestIterator([1, 2, 3, 4, 5]), '', true)); $this->assertFalse($constraint->evaluate(new TestIterator([1, 2, 3, 4]), '', true)); } public function testConstraintCountWithAnObjectImplementingCountable() { $constraint = new PHPUnit_Framework_Constraint_Count(5); $this->assertTrue($constraint->evaluate(new ArrayObject([1, 2, 3, 4, 5]), '', true)); $this->assertFalse($constraint->evaluate(new ArrayObject([1, 2, 3, 4]), '', true)); } public function testConstraintCountFailing() { $constraint = new PHPUnit_Framework_Constraint_Count(5); try { $constraint->evaluate([1, 2]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotCountFailing() { $constraint = PHPUnit_Framework_Assert::logicalNot( new PHPUnit_Framework_Constraint_Count(2) ); try { $constraint->evaluate([1, 2]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintSameSizeWithAnArray() { $constraint = new PHPUnit_Framework_Constraint_SameSize([1, 2, 3, 4, 5]); $this->assertTrue($constraint->evaluate([6, 7, 8, 9, 10], '', true)); $this->assertFalse($constraint->evaluate([1, 2, 3, 4], '', true)); } public function testConstraintSameSizeWithAnIteratorWhichDoesNotImplementCountable() { $constraint = new PHPUnit_Framework_Constraint_SameSize(new TestIterator([1, 2, 3, 4, 5])); $this->assertTrue($constraint->evaluate(new TestIterator([6, 7, 8, 9, 10]), '', true)); $this->assertFalse($constraint->evaluate(new TestIterator([1, 2, 3, 4]), '', true)); } public function testConstraintSameSizeWithAnObjectImplementingCountable() { $constraint = new PHPUnit_Framework_Constraint_SameSize(new ArrayObject([1, 2, 3, 4, 5])); $this->assertTrue($constraint->evaluate(new ArrayObject([6, 7, 8, 9, 10]), '', true)); $this->assertFalse($constraint->evaluate(new ArrayObject([1, 2, 3, 4]), '', true)); } public function testConstraintSameSizeFailing() { $constraint = new PHPUnit_Framework_Constraint_SameSize([1, 2, 3, 4, 5]); try { $constraint->evaluate([1, 2]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintNotSameSizeFailing() { $constraint = PHPUnit_Framework_Assert::logicalNot( new PHPUnit_Framework_Constraint_SameSize([1, 2]) ); try { $constraint->evaluate([3, 4]); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } public function testConstraintException() { $constraint = new PHPUnit_Framework_Constraint_Exception('FoobarException'); $exception = new DummyException('Test'); $stackTrace = PHPUnit_Util_Filter::getFilteredStacktrace($exception); try { $constraint->evaluate($exception); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertEquals( <<fail(); } /** * Removes spaces in front of newlines * * @param string $string * * @return string */ private function trimnl($string) { return preg_replace('/[ ]*\n/', "\n", $string); } }