| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
							- <?php
 
- /*
 
-  * This file is part of sebastian/comparator.
 
-  *
 
-  * (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 PHPUnit\Framework\TestCase;
 
- /**
 
-  * @covers \SebastianBergmann\Comparator\Factory
 
-  *
 
-  * @uses \SebastianBergmann\Comparator\Comparator
 
-  * @uses \SebastianBergmann\Comparator\Factory
 
-  * @uses \SebastianBergmann\Comparator\ComparisonFailure
 
-  */
 
- final class FactoryTest extends TestCase
 
- {
 
-     public function instanceProvider()
 
-     {
 
-         $tmpfile = \tmpfile();
 
-         return [
 
-             [null, null, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [null, true, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [true, null, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [true, true, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [false, false, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [true, false, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [false, true, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             ['', '', 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             ['0', '0', 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             ['0', 0, 'SebastianBergmann\\Comparator\\NumericComparator'],
 
-             [0, '0', 'SebastianBergmann\\Comparator\\NumericComparator'],
 
-             [0, 0, 'SebastianBergmann\\Comparator\\NumericComparator'],
 
-             [1.0, 0, 'SebastianBergmann\\Comparator\\DoubleComparator'],
 
-             [0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'],
 
-             [1.0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'],
 
-             [[1], [1], 'SebastianBergmann\\Comparator\\ArrayComparator'],
 
-             [$tmpfile, $tmpfile, 'SebastianBergmann\\Comparator\\ResourceComparator'],
 
-             [new \stdClass, new \stdClass, 'SebastianBergmann\\Comparator\\ObjectComparator'],
 
-             [new \DateTime, new \DateTime, 'SebastianBergmann\\Comparator\\DateTimeComparator'],
 
-             [new \SplObjectStorage, new \SplObjectStorage, 'SebastianBergmann\\Comparator\\SplObjectStorageComparator'],
 
-             [new \Exception, new \Exception, 'SebastianBergmann\\Comparator\\ExceptionComparator'],
 
-             [new \DOMDocument, new \DOMDocument, 'SebastianBergmann\\Comparator\\DOMNodeComparator'],
 
-             // mixed types
 
-             [$tmpfile, [1], 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [[1], $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [$tmpfile, '1', 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             ['1', $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [$tmpfile, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [new \stdClass, $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [new \stdClass, [1], 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [[1], new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [new \stdClass, '1', 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             ['1', new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [new ClassWithToString, '1', 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             ['1', new ClassWithToString, 'SebastianBergmann\\Comparator\\ScalarComparator'],
 
-             [1.0, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [new \stdClass, 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [1.0, [1], 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-             [[1], 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'],
 
-         ];
 
-     }
 
-     /**
 
-      * @dataProvider instanceProvider
 
-      */
 
-     public function testGetComparatorFor($a, $b, $expected): void
 
-     {
 
-         $factory = new Factory;
 
-         $actual  = $factory->getComparatorFor($a, $b);
 
-         $this->assertInstanceOf($expected, $actual);
 
-     }
 
-     public function testRegister(): void
 
-     {
 
-         $comparator = new TestClassComparator;
 
-         $factory = new Factory;
 
-         $factory->register($comparator);
 
-         $a        = new TestClass;
 
-         $b        = new TestClass;
 
-         $expected = 'SebastianBergmann\\Comparator\\TestClassComparator';
 
-         $actual   = $factory->getComparatorFor($a, $b);
 
-         $factory->unregister($comparator);
 
-         $this->assertInstanceOf($expected, $actual);
 
-     }
 
-     public function testUnregister(): void
 
-     {
 
-         $comparator = new TestClassComparator;
 
-         $factory = new Factory;
 
-         $factory->register($comparator);
 
-         $factory->unregister($comparator);
 
-         $a        = new TestClass;
 
-         $b        = new TestClass;
 
-         $expected = 'SebastianBergmann\\Comparator\\ObjectComparator';
 
-         $actual   = $factory->getComparatorFor($a, $b);
 
-         $this->assertInstanceOf($expected, $actual);
 
-     }
 
-     public function testIsSingleton(): void
 
-     {
 
-         $f = Factory::getInstance();
 
-         $this->assertSame($f, Factory::getInstance());
 
-     }
 
- }
 
 
  |