You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.3 KiB
138 lines
3.3 KiB
4 years ago
|
<?php
|
||
|
/*
|
||
|
* This file is part of the Comparator package.
|
||
|
*
|
||
|
* (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.
|
||
|
*/
|
||
|
|
||
|
namespace SebastianBergmann\Comparator;
|
||
|
|
||
|
use SplObjectStorage;
|
||
|
use stdClass;
|
||
|
|
||
|
/**
|
||
|
* @coversDefaultClass SebastianBergmann\Comparator\SplObjectStorageComparator
|
||
|
*
|
||
|
*/
|
||
|
class SplObjectStorageComparatorTest extends \PHPUnit_Framework_TestCase
|
||
|
{
|
||
|
private $comparator;
|
||
|
|
||
|
protected function setUp()
|
||
|
{
|
||
|
$this->comparator = new SplObjectStorageComparator;
|
||
|
}
|
||
|
|
||
|
public function acceptsFailsProvider()
|
||
|
{
|
||
|
return array(
|
||
|
array(new SplObjectStorage, new stdClass),
|
||
|
array(new stdClass, new SplObjectStorage),
|
||
|
array(new stdClass, new stdClass)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function assertEqualsSucceedsProvider()
|
||
|
{
|
||
|
$object1 = new stdClass();
|
||
|
$object2 = new stdClass();
|
||
|
|
||
|
$storage1 = new SplObjectStorage();
|
||
|
$storage2 = new SplObjectStorage();
|
||
|
|
||
|
$storage3 = new SplObjectStorage();
|
||
|
$storage3->attach($object1);
|
||
|
$storage3->attach($object2);
|
||
|
|
||
|
$storage4 = new SplObjectStorage();
|
||
|
$storage4->attach($object2);
|
||
|
$storage4->attach($object1);
|
||
|
|
||
|
return array(
|
||
|
array($storage1, $storage1),
|
||
|
array($storage1, $storage2),
|
||
|
array($storage3, $storage3),
|
||
|
array($storage3, $storage4)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function assertEqualsFailsProvider()
|
||
|
{
|
||
|
$object1 = new stdClass;
|
||
|
$object2 = new stdClass;
|
||
|
|
||
|
$storage1 = new SplObjectStorage;
|
||
|
|
||
|
$storage2 = new SplObjectStorage;
|
||
|
$storage2->attach($object1);
|
||
|
|
||
|
$storage3 = new SplObjectStorage;
|
||
|
$storage3->attach($object2);
|
||
|
$storage3->attach($object1);
|
||
|
|
||
|
return array(
|
||
|
array($storage1, $storage2),
|
||
|
array($storage1, $storage3),
|
||
|
array($storage2, $storage3),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @covers ::accepts
|
||
|
*/
|
||
|
public function testAcceptsSucceeds()
|
||
|
{
|
||
|
$this->assertTrue(
|
||
|
$this->comparator->accepts(
|
||
|
new SplObjectStorage,
|
||
|
new SplObjectStorage
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @covers ::accepts
|
||
|
* @dataProvider acceptsFailsProvider
|
||
|
*/
|
||
|
public function testAcceptsFails($expected, $actual)
|
||
|
{
|
||
|
$this->assertFalse(
|
||
|
$this->comparator->accepts($expected, $actual)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @covers ::assertEquals
|
||
|
* @dataProvider assertEqualsSucceedsProvider
|
||
|
*/
|
||
|
public function testAssertEqualsSucceeds($expected, $actual)
|
||
|
{
|
||
|
$exception = null;
|
||
|
|
||
|
try {
|
||
|
$this->comparator->assertEquals($expected, $actual);
|
||
|
}
|
||
|
|
||
|
catch (ComparisonFailure $exception) {
|
||
|
}
|
||
|
|
||
|
$this->assertNull($exception, 'Unexpected ComparisonFailure');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @covers ::assertEquals
|
||
|
* @dataProvider assertEqualsFailsProvider
|
||
|
*/
|
||
|
public function testAssertEqualsFails($expected, $actual)
|
||
|
{
|
||
|
$this->setExpectedException(
|
||
|
'SebastianBergmann\\Comparator\\ComparisonFailure',
|
||
|
'Failed asserting that two objects are equal.'
|
||
|
);
|
||
|
$this->comparator->assertEquals($expected, $actual);
|
||
|
}
|
||
|
}
|