/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
https://gitlab.com/ealexis.t/trends · PHP · 1743 lines · 1127 code · 243 blank · 373 comment · 0 complexity · 5ced81e7a7b8430a48c8d4d38ef26d22 MD5 · raw file
- <?php
- /*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * @since Class available since Release 2.0.0
- */
- class Framework_AssertTest extends PHPUnit_Framework_TestCase
- {
- /**
- * @var string
- */
- private $filesDirectory;
- protected function setUp()
- {
- $this->filesDirectory = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR;
- }
- /**
- * @covers PHPUnit_Framework_Assert::fail
- */
- public function testFail()
- {
- try {
- $this->fail();
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- throw new PHPUnit_Framework_AssertionFailedError('Fail did not throw fail exception');
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertSplObjectStorageContainsObject()
- {
- $a = new stdClass;
- $b = new stdClass;
- $c = new SplObjectStorage;
- $c->attach($a);
- $this->assertContains($a, $c);
- try {
- $this->assertContains($b, $c);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertArrayContainsObject()
- {
- $a = new stdClass;
- $b = new stdClass;
- $this->assertContains($a, array($a));
- try {
- $this->assertContains($a, array($b));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertArrayContainsString()
- {
- $this->assertContains('foo', array('foo'));
- try {
- $this->assertContains('foo', array('bar'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertArrayContainsNonObject()
- {
- $this->assertContains('foo', array(true));
- try {
- $this->assertContains('foo', array(true), '', false, true, true);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
- */
- public function testAssertContainsOnlyInstancesOf()
- {
- $test = array(
- new Book(),
- new Book
- );
- $this->assertContainsOnlyInstancesOf('Book', $test);
- $this->assertContainsOnlyInstancesOf('stdClass', array(new stdClass()));
- $test2 = array(
- new Author('Test')
- );
- try {
- $this->assertContainsOnlyInstancesOf('Book', $test2);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertArrayHasKeyThrowsExceptionForInvalidFirstArgument()
- {
- $this->assertArrayHasKey(null, array());
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertArrayHasKeyThrowsExceptionForInvalidSecondArgument()
- {
- $this->assertArrayHasKey(0, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- */
- public function testAssertArrayHasIntegerKey()
- {
- $this->assertArrayHasKey(0, array('foo'));
- try {
- $this->assertArrayHasKey(1, array('foo'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArraySubset
- * @covers PHPUnit_Framework_Constraint_ArraySubset
- */
- public function testAssertArraySubset()
- {
- $array = array(
- 'a' => 'item a',
- 'b' => 'item b',
- 'c' => array('a2' => 'item a2', 'b2' => 'item b2'),
- 'd' => array('a2' => array('a3' => 'item a3', 'b3' => 'item b3'))
- );
- $this->assertArraySubset(array('a' => 'item a', 'c' => array('a2' => 'item a2')), $array);
- $this->assertArraySubset(array('a' => 'item a', 'd' => array('a2' => array('b3' => 'item b3'))), $array);
- try {
- $this->assertArraySubset(array('a' => 'bad value'), $array);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- }
- try {
- $this->assertArraySubset(array('d' => array('a2' => array('bad index' => 'item b3'))), $array);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArraySubset
- * @covers PHPUnit_Framework_Constraint_ArraySubset
- */
- public function testAssertArraySubsetWithDeepNestedArrays()
- {
- $array = array(
- 'path' => array(
- 'to' => array(
- 'the' => array(
- 'cake' => 'is a lie'
- )
- )
- )
- );
- $this->assertArraySubset(array('path' => array()), $array);
- $this->assertArraySubset(array('path' => array('to' => array())), $array);
- $this->assertArraySubset(array('path' => array('to' => array('the' => array()))), $array);
- $this->assertArraySubset(array('path' => array('to' => array('the' => array('cake' => 'is a lie')))), $array);
- try {
- $this->assertArraySubset(array('path' => array('to' => array('the' => array('cake' => 'is not a lie')))), $array);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArraySubset
- * @covers PHPUnit_Framework_Constraint_ArraySubset
- */
- public function testAssertArraySubsetWithNoStrictCheckAndObjects()
- {
- $obj = new \stdClass;
- $reference = &$obj;
- $array = array('a' => $obj);
- $this->assertArraySubset(array('a' => $reference), $array);
- $this->assertArraySubset(array('a' => new \stdClass), $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArraySubset
- * @covers PHPUnit_Framework_Constraint_ArraySubset
- */
- public function testAssertArraySubsetWithStrictCheckAndObjects()
- {
- $obj = new \stdClass;
- $reference = &$obj;
- $array = array('a' => $obj);
- $this->assertArraySubset(array('a' => $reference), $array, true);
- try {
- $this->assertArraySubset(array('a' => new \stdClass), $array, true);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail('Strict recursive array check fail.');
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArraySubset
- * @covers PHPUnit_Framework_Constraint_ArraySubset
- * @expectedException PHPUnit_Framework_Exception
- * @expectedExceptionMessage array or ArrayAccess
- * @dataProvider assertArraySubsetInvalidArgumentProvider
- */
- public function testAssertArraySubsetRaisesExceptionForInvalidArguments($partial, $subject)
- {
- $this->assertArraySubset($partial, $subject);
- }
- /**
- * @return array
- */
- public function assertArraySubsetInvalidArgumentProvider()
- {
- return array(
- array(false, array()),
- array(array(), false),
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertArrayNotHasKeyThrowsExceptionForInvalidFirstArgument()
- {
- $this->assertArrayNotHasKey(null, array());
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertArrayNotHasKeyThrowsExceptionForInvalidSecondArgument()
- {
- $this->assertArrayNotHasKey(0, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- */
- public function testAssertArrayNotHasIntegerKey()
- {
- $this->assertArrayNotHasKey(1, array('foo'));
- try {
- $this->assertArrayNotHasKey(0, array('foo'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- */
- public function testAssertArrayHasStringKey()
- {
- $this->assertArrayHasKey('foo', array('foo' => 'bar'));
- try {
- $this->assertArrayHasKey('bar', array('foo' => 'bar'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- */
- public function testAssertArrayNotHasStringKey()
- {
- $this->assertArrayNotHasKey('bar', array('foo' => 'bar'));
- try {
- $this->assertArrayNotHasKey('foo', array('foo' => 'bar'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- */
- public function testAssertArrayHasKeyAcceptsArrayObjectValue()
- {
- $array = new ArrayObject();
- $array['foo'] = 'bar';
- $this->assertArrayHasKey('foo', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- * @expectedException PHPUnit_Framework_AssertionFailedError
- */
- public function testAssertArrayHasKeyProperlyFailsWithArrayObjectValue()
- {
- $array = new ArrayObject();
- $array['bar'] = 'bar';
- $this->assertArrayHasKey('foo', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- */
- public function testAssertArrayHasKeyAcceptsArrayAccessValue()
- {
- $array = new SampleArrayAccess();
- $array['foo'] = 'bar';
- $this->assertArrayHasKey('foo', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayHasKey
- * @expectedException PHPUnit_Framework_AssertionFailedError
- */
- public function testAssertArrayHasKeyProperlyFailsWithArrayAccessValue()
- {
- $array = new SampleArrayAccess();
- $array['bar'] = 'bar';
- $this->assertArrayHasKey('foo', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- */
- public function testAssertArrayNotHasKeyAcceptsArrayAccessValue()
- {
- $array = new ArrayObject();
- $array['foo'] = 'bar';
- $this->assertArrayNotHasKey('bar', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
- * @expectedException PHPUnit_Framework_AssertionFailedError
- */
- public function testAssertArrayNotHasKeyPropertlyFailsWithArrayAccessValue()
- {
- $array = new ArrayObject();
- $array['bar'] = 'bar';
- $this->assertArrayNotHasKey('bar', $array);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertContainsThrowsException()
- {
- $this->assertContains(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertIteratorContainsObject()
- {
- $foo = new stdClass;
- $this->assertContains($foo, new TestIterator(array($foo)));
- try {
- $this->assertContains($foo, new TestIterator(array(new stdClass)));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertIteratorContainsString()
- {
- $this->assertContains('foo', new TestIterator(array('foo')));
- try {
- $this->assertContains('foo', new TestIterator(array('bar')));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContains
- */
- public function testAssertStringContainsString()
- {
- $this->assertContains('foo', 'foobar');
- try {
- $this->assertContains('foo', 'bar');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertNotContainsThrowsException()
- {
- $this->assertNotContains(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- */
- public function testAssertSplObjectStorageNotContainsObject()
- {
- $a = new stdClass;
- $b = new stdClass;
- $c = new SplObjectStorage;
- $c->attach($a);
- $this->assertNotContains($b, $c);
- try {
- $this->assertNotContains($a, $c);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- */
- public function testAssertArrayNotContainsObject()
- {
- $a = new stdClass;
- $b = new stdClass;
- $this->assertNotContains($a, array($b));
- try {
- $this->assertNotContains($a, array($a));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- */
- public function testAssertArrayNotContainsString()
- {
- $this->assertNotContains('foo', array('bar'));
- try {
- $this->assertNotContains('foo', array('foo'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- */
- public function testAssertArrayNotContainsNonObject()
- {
- $this->assertNotContains('foo', array(true), '', false, true, true);
- try {
- $this->assertNotContains('foo', array(true));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContains
- */
- public function testAssertStringNotContainsString()
- {
- $this->assertNotContains('foo', 'bar');
- try {
- $this->assertNotContains('foo', 'foo');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContainsOnly
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertContainsOnlyThrowsException()
- {
- $this->assertContainsOnly(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertNotContainsOnlyThrowsException()
- {
- $this->assertNotContainsOnly(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertContainsOnlyInstancesOfThrowsException()
- {
- $this->assertContainsOnlyInstancesOf(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContainsOnly
- */
- public function testAssertArrayContainsOnlyIntegers()
- {
- $this->assertContainsOnly('integer', array(1, 2, 3));
- try {
- $this->assertContainsOnly('integer', array('1', 2, 3));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
- */
- public function testAssertArrayNotContainsOnlyIntegers()
- {
- $this->assertNotContainsOnly('integer', array('1', 2, 3));
- try {
- $this->assertNotContainsOnly('integer', array(1, 2, 3));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertContainsOnly
- */
- public function testAssertArrayContainsOnlyStdClass()
- {
- $this->assertContainsOnly('StdClass', array(new stdClass));
- try {
- $this->assertContainsOnly('StdClass', array('StdClass'));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
- */
- public function testAssertArrayNotContainsOnlyStdClass()
- {
- $this->assertNotContainsOnly('StdClass', array('StdClass'));
- try {
- $this->assertNotContainsOnly('StdClass', array(new stdClass));
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- protected function sameValues()
- {
- $object = new SampleClass(4, 8, 15);
- // cannot use $filesDirectory, because neither setUp() nor
- // setUpBeforeClass() are executed before the data providers
- $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
- $resource = fopen($file, 'r');
- return array(
- // null
- array(null, null),
- // strings
- array('a', 'a'),
- // integers
- array(0, 0),
- // floats
- array(2.3, 2.3),
- array(1/3, 1 - 2/3),
- array(log(0), log(0)),
- // arrays
- array(array(), array()),
- array(array(0 => 1), array(0 => 1)),
- array(array(0 => null), array(0 => null)),
- array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(1, 2))),
- // objects
- array($object, $object),
- // resources
- array($resource, $resource),
- );
- }
- protected function notEqualValues()
- {
- // cyclic dependencies
- $book1 = new Book;
- $book1->author = new Author('Terry Pratchett');
- $book1->author->books[] = $book1;
- $book2 = new Book;
- $book2->author = new Author('Terry Pratch');
- $book2->author->books[] = $book2;
- $book3 = new Book;
- $book3->author = 'Terry Pratchett';
- $book4 = new stdClass;
- $book4->author = 'Terry Pratchett';
- $object1 = new SampleClass(4, 8, 15);
- $object2 = new SampleClass(16, 23, 42);
- $object3 = new SampleClass(4, 8, 15);
- $storage1 = new SplObjectStorage;
- $storage1->attach($object1);
- $storage2 = new SplObjectStorage;
- $storage2->attach($object3); // same content, different object
- // cannot use $filesDirectory, because neither setUp() nor
- // setUpBeforeClass() are executed before the data providers
- $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
- return array(
- // strings
- array('a', 'b'),
- array('a', 'A'),
- // https://github.com/sebastianbergmann/phpunit/issues/1023
- array('9E6666666','9E7777777'),
- // integers
- array(1, 2),
- array(2, 1),
- // floats
- array(2.3, 4.2),
- array(2.3, 4.2, 0.5),
- array(array(2.3), array(4.2), 0.5),
- array(array(array(2.3)), array(array(4.2)), 0.5),
- array(new Struct(2.3), new Struct(4.2), 0.5),
- array(array(new Struct(2.3)), array(new Struct(4.2)), 0.5),
- // NAN
- array(NAN, NAN),
- // arrays
- array(array(), array(0 => 1)),
- array(array(0 => 1), array()),
- array(array(0 => null), array()),
- array(array(0 => 1, 1 => 2), array(0 => 1, 1 => 3)),
- array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(2, 1))),
- // objects
- array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42)),
- array($object1, $object2),
- array($book1, $book2),
- array($book3, $book4), // same content, different class
- // resources
- array(fopen($file, 'r'), fopen($file, 'r')),
- // SplObjectStorage
- array($storage1, $storage2),
- // DOMDocument
- array(
- PHPUnit_Util_XML::load('<root></root>'),
- PHPUnit_Util_XML::load('<bar/>'),
- ),
- array(
- PHPUnit_Util_XML::load('<foo attr1="bar"/>'),
- PHPUnit_Util_XML::load('<foo attr1="foobar"/>'),
- ),
- array(
- PHPUnit_Util_XML::load('<foo> bar </foo>'),
- PHPUnit_Util_XML::load('<foo />'),
- ),
- array(
- PHPUnit_Util_XML::load('<foo xmlns="urn:myns:bar"/>'),
- PHPUnit_Util_XML::load('<foo xmlns="urn:notmyns:bar"/>'),
- ),
- array(
- PHPUnit_Util_XML::load('<foo> bar </foo>'),
- PHPUnit_Util_XML::load('<foo> bir </foo>'),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
- 3500
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
- 3500
- ),
- array(
- new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
- ),
- array(
- new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
- 43200
- ),
- array(
- 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(
- 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')),
- 3500
- ),
- array(
- new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-30', new DateTimeZone('America/Chicago')),
- ),
- array(
- new DateTime('2013-03-29T05:13:35-0600'),
- new DateTime('2013-03-29T04:13:35-0600'),
- ),
- array(
- new DateTime('2013-03-29T05:13:35-0600'),
- new DateTime('2013-03-29T05:13:35-0500'),
- ),
- // Exception
- //array(new Exception('Exception 1'), new Exception('Exception 2')),
- // different types
- array(new SampleClass(4, 8, 15), false),
- array(false, new SampleClass(4, 8, 15)),
- array(array(0 => 1, 1 => 2), false),
- array(false, array(0 => 1, 1 => 2)),
- array(array(), new stdClass),
- array(new stdClass, array()),
- // PHP: 0 == 'Foobar' => true!
- // We want these values to differ
- array(0, 'Foobar'),
- array('Foobar', 0),
- array(3, acos(8)),
- array(acos(8), 3)
- );
- }
- protected function equalValues()
- {
- // cyclic dependencies
- $book1 = new Book;
- $book1->author = new Author('Terry Pratchett');
- $book1->author->books[] = $book1;
- $book2 = new Book;
- $book2->author = new Author('Terry Pratchett');
- $book2->author->books[] = $book2;
- $object1 = new SampleClass(4, 8, 15);
- $object2 = new SampleClass(4, 8, 15);
- $storage1 = new SplObjectStorage;
- $storage1->attach($object1);
- $storage2 = new SplObjectStorage;
- $storage2->attach($object1);
- return array(
- // strings
- array('a', 'A', 0, false, true), // ignore case
- // arrays
- array(array('a' => 1, 'b' => 2), array('b' => 2, 'a' => 1)),
- array(array(1), array('1')),
- array(array(3, 2, 1), array(2, 3, 1), 0, true), // canonicalized comparison
- // floats
- array(2.3, 2.5, 0.5),
- array(array(2.3), array(2.5), 0.5),
- array(array(array(2.3)), array(array(2.5)), 0.5),
- array(new Struct(2.3), new Struct(2.5), 0.5),
- array(array(new Struct(2.3)), array(new Struct(2.5)), 0.5),
- // numeric with delta
- array(1, 2, 1),
- // objects
- array($object1, $object2),
- array($book1, $book2),
- // SplObjectStorage
- array($storage1, $storage2),
- // DOMDocument
- array(
- PHPUnit_Util_XML::load('<root></root>'),
- PHPUnit_Util_XML::load('<root/>'),
- ),
- array(
- PHPUnit_Util_XML::load('<root attr="bar"></root>'),
- PHPUnit_Util_XML::load('<root attr="bar"/>'),
- ),
- array(
- PHPUnit_Util_XML::load('<root><foo attr="bar"></foo></root>'),
- PHPUnit_Util_XML::load('<root><foo attr="bar"/></root>'),
- ),
- array(
- PHPUnit_Util_XML::load("<root>\n <child/>\n</root>"),
- PHPUnit_Util_XML::load('<root><child/></root>'),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
- 10
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
- 65
- ),
- array(
- new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago')),
- ),
- array(
- new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
- 15
- ),
- array(
- new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
- ),
- array(
- new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
- new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
- 100
- ),
- array(
- new DateTime('@1364616000'),
- new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
- ),
- array(
- new DateTime('2013-03-29T05:13:35-0500'),
- new DateTime('2013-03-29T04:13:35-0600'),
- ),
- // Exception
- //array(new Exception('Exception 1'), new Exception('Exception 1')),
- // mixed types
- array(0, '0'),
- array('0', 0),
- array(2.3, '2.3'),
- array('2.3', 2.3),
- array((string) (1/3), 1 - 2/3),
- array(1/3, (string) (1 - 2/3)),
- array('string representation', new ClassWithToString),
- array(new ClassWithToString, 'string representation'),
- );
- }
- public function equalProvider()
- {
- // same |= equal
- return array_merge($this->equalValues(), $this->sameValues());
- }
- public function notEqualProvider()
- {
- return $this->notEqualValues();
- }
- public function sameProvider()
- {
- return $this->sameValues();
- }
- public function notSameProvider()
- {
- // not equal |= not same
- // equal, ¬same |= not same
- return array_merge($this->notEqualValues(), $this->equalValues());
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEquals
- * @dataProvider equalProvider
- */
- public function testAssertEqualsSucceeds($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
- {
- $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEquals
- * @dataProvider notEqualProvider
- */
- public function testAssertEqualsFails($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
- {
- try {
- $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotEquals
- * @dataProvider notEqualProvider
- */
- public function testAssertNotEqualsSucceeds($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
- {
- $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotEquals
- * @dataProvider equalProvider
- */
- public function testAssertNotEqualsFails($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
- {
- try {
- $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertSame
- * @dataProvider sameProvider
- */
- public function testAssertSameSucceeds($a, $b)
- {
- $this->assertSame($a, $b);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertSame
- * @dataProvider notSameProvider
- */
- public function testAssertSameFails($a, $b)
- {
- try {
- $this->assertSame($a, $b);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotSame
- * @dataProvider notSameProvider
- */
- public function testAssertNotSameSucceeds($a, $b)
- {
- $this->assertNotSame($a, $b);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotSame
- * @dataProvider sameProvider
- */
- public function testAssertNotSameFails($a, $b)
- {
- try {
- $this->assertNotSame($a, $b);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlFileEqualsXmlFile
- */
- public function testAssertXmlFileEqualsXmlFile()
- {
- $this->assertXmlFileEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- $this->filesDirectory . 'foo.xml'
- );
- try {
- $this->assertXmlFileEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- $this->filesDirectory . 'bar.xml'
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlFileNotEqualsXmlFile
- */
- public function testAssertXmlFileNotEqualsXmlFile()
- {
- $this->assertXmlFileNotEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- $this->filesDirectory . 'bar.xml'
- );
- try {
- $this->assertXmlFileNotEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- $this->filesDirectory . 'foo.xml'
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlFile
- */
- public function testAssertXmlStringEqualsXmlFile()
- {
- $this->assertXmlStringEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- file_get_contents($this->filesDirectory . 'foo.xml')
- );
- try {
- $this->assertXmlStringEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- file_get_contents($this->filesDirectory . 'bar.xml')
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlFile
- */
- public function testXmlStringNotEqualsXmlFile()
- {
- $this->assertXmlStringNotEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- file_get_contents($this->filesDirectory . 'bar.xml')
- );
- try {
- $this->assertXmlStringNotEqualsXmlFile(
- $this->filesDirectory . 'foo.xml',
- file_get_contents($this->filesDirectory . 'foo.xml')
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
- */
- public function testAssertXmlStringEqualsXmlString()
- {
- $this->assertXmlStringEqualsXmlString('<root/>', '<root/>');
- try {
- $this->assertXmlStringEqualsXmlString('<foo/>', '<bar/>');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @expectedException PHPUnit_Framework_Exception
- * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
- * @ticket 1860
- */
- public function testAssertXmlStringEqualsXmlString2()
- {
- $this->assertXmlStringEqualsXmlString('<a></b>', '<c></d>');
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
- * @ticket 1860
- */
- public function testAssertXmlStringEqualsXmlString3()
- {
- $expected = <<<XML
- <?xml version="1.0"?>
- <root>
- <node />
- </root>
- XML;
- $actual = <<<XML
- <?xml version="1.0"?>
- <root>
- <node />
- </root>
- XML;
- $this->assertXmlStringEqualsXmlString($expected, $actual);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlString
- */
- public function testAssertXmlStringNotEqualsXmlString()
- {
- $this->assertXmlStringNotEqualsXmlString('<foo/>', '<bar/>');
- try {
- $this->assertXmlStringNotEqualsXmlString('<root/>', '<root/>');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- */
- public function testXMLStructureIsSame()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureExpected.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- * @expectedException PHPUnit_Framework_ExpectationFailedException
- */
- public function testXMLStructureWrongNumberOfAttributes()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureWrongNumberOfAttributes.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- * @expectedException PHPUnit_Framework_ExpectationFailedException
- */
- public function testXMLStructureWrongNumberOfNodes()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureWrongNumberOfNodes.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- */
- public function testXMLStructureIsSameButDataIsNot()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureIsSameButDataIsNot.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- */
- public function testXMLStructureAttributesAreSameButValuesAreNot()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureAttributesAreSameButValuesAreNot.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
- */
- public function testXMLStructureIgnoreTextNodes()
- {
- $expected = new DOMDocument;
- $expected->load($this->filesDirectory . 'structureExpected.xml');
- $actual = new DOMDocument;
- $actual->load($this->filesDirectory . 'structureIgnoreTextNodes.xml');
- $this->assertEqualXMLStructure(
- $expected->firstChild, $actual->firstChild, true
- );
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertEquals
- */
- public function testAssertStringEqualsNumeric()
- {
- $this->assertEquals('0', 0);
- try {
- $this->assertEquals('0', 1);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotEquals
- */
- public function testAssertStringEqualsNumeric2()
- {
- $this->assertNotEquals('A', 0);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertFileExists
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertFileExistsThrowsException()
- {
- $this->assertFileExists(null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertFileExists
- */
- public function testAssertFileExists()
- {
- $this->assertFileExists(__FILE__);
- try {
- $this->assertFileExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertFileNotExists
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertFileNotExistsThrowsException()
- {
- $this->assertFileNotExists(null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertFileNotExists
- */
- public function testAssertFileNotExists()
- {
- $this->assertFileNotExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
- try {
- $this->assertFileNotExists(__FILE__);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
- */
- public function testAssertObjectHasAttribute()
- {
- $o = new Author('Terry Pratchett');
- $this->assertObjectHasAttribute('name', $o);
- try {
- $this->assertObjectHasAttribute('foo', $o);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
- */
- public function testAssertObjectNotHasAttribute()
- {
- $o = new Author('Terry Pratchett');
- $this->assertObjectNotHasAttribute('foo', $o);
- try {
- $this->assertObjectNotHasAttribute('name', $o);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNull
- */
- public function testAssertNull()
- {
- $this->assertNull(null);
- try {
- $this->assertNull(new stdClass);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotNull
- */
- public function testAssertNotNull()
- {
- $this->assertNotNull(new stdClass);
- try {
- $this->assertNotNull(null);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertTrue
- */
- public function testAssertTrue()
- {
- $this->assertTrue(true);
- try {
- $this->assertTrue(false);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotTrue
- */
- public function testAssertNotTrue()
- {
- $this->assertNotTrue(false);
- $this->assertNotTrue(1);
- $this->assertNotTrue('true');
- try {
- $this->assertNotTrue(true);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertFalse
- */
- public function testAssertFalse()
- {
- $this->assertFalse(false);
- try {
- $this->assertFalse(true);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotFalse
- */
- public function testAssertNotFalse()
- {
- $this->assertNotFalse(true);
- $this->assertNotFalse(0);
- $this->assertNotFalse('');
- try {
- $this->assertNotFalse(false);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertRegExp
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertRegExpThrowsException()
- {
- $this->assertRegExp(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertRegExp
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertRegExpThrowsException2()
- {
- $this->assertRegExp('', null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotRegExp
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertNotRegExpThrowsException()
- {
- $this->assertNotRegExp(null, null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotRegExp
- * @expectedException PHPUnit_Framework_Exception
- */
- public function testAssertNotRegExpThrowsException2()
- {
- $this->assertNotRegExp('', null);
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertRegExp
- */
- public function testAssertRegExp()
- {
- $this->assertRegExp('/foo/', 'foobar');
- try {
- $this->assertRegExp('/foo/', 'bar');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotRegExp
- */
- public function testAssertNotRegExp()
- {
- $this->assertNotRegExp('/foo/', 'bar');
- try {
- $this->assertNotRegExp('/foo/', 'foobar');
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertSame
- */
- public function testAssertSame()
- {
- $o = new stdClass;
- $this->assertSame($o, $o);
- try {
- $this->assertSame(
- new stdClass,
- new stdClass
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertSame
- */
- public function testAssertSame2()
- {
- $this->assertSame(true, true);
- $this->assertSame(false, false);
- try {
- $this->assertSame(true, false);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotSame
- */
- public function testAssertNotSame()
- {
- $this->assertNotSame(
- new stdClass,
- null
- );
- $this->assertNotSame(
- null,
- new stdClass
- );
- $this->assertNotSame(
- new stdClass,
- new stdClass
- );
- $o = new stdClass;
- try {
- $this->assertNotSame($o, $o);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotSame
- */
- public function testAssertNotSame2()
- {
- $this->assertNotSame(true, false);
- $this->assertNotSame(false, true);
- try {
- $this->assertNotSame(true, true);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertNotSame
- */
- public function testAssertNotSameFailsNull()
- {
- try {
- $this->assertNotSame(null, null);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertGreaterThan
- */
- public function testGreaterThan()
- {
- $this->assertGreaterThan(1, 2);
- try {
- $this->assertGreaterThan(2, 1);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThan
- */
- public function testAttributeGreaterThan()
- {
- $this->assertAttributeGreaterThan(
- 1, 'bar', new ClassWithNonPublicAttributes
- );
- try {
- $this->assertAttributeGreaterThan(
- 1, 'foo', new ClassWithNonPublicAttributes
- );
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- return;
- }
- $this->fail();
- }
- /**
- * @covers PHPUnit_Framework_Assert::assertGreaterThanOrEqual
- */
- public function testGreaterThanOrEqual()
- {
- $this->assertGreaterThanOrEqual(1, 2);
- try {
- $this->assertGreaterThanOrEqual(2, 1);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- ret