gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

FactoryTest.php (5240B)


      1 <?php
      2 /*
      3  * This file is part of the Comparator package.
      4  *
      5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
      6  *
      7  * For the full copyright and license information, please view the LICENSE
      8  * file that was distributed with this source code.
      9  */
     10 
     11 namespace SebastianBergmann\Comparator;
     12 
     13 /**
     14  * @coversDefaultClass SebastianBergmann\Comparator\Factory
     15  *
     16  */
     17 class FactoryTest extends \PHPUnit_Framework_TestCase
     18 {
     19     public function instanceProvider()
     20     {
     21         $tmpfile = tmpfile();
     22 
     23         return array(
     24             array(NULL, NULL, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     25             array(NULL, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     26             array(TRUE, NULL, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     27             array(TRUE, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     28             array(FALSE, FALSE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     29             array(TRUE, FALSE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     30             array(FALSE, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     31             array('', '', 'SebastianBergmann\\Comparator\\ScalarComparator'),
     32             array('0', '0', 'SebastianBergmann\\Comparator\\ScalarComparator'),
     33             array('0', 0, 'SebastianBergmann\\Comparator\\NumericComparator'),
     34             array(0, '0', 'SebastianBergmann\\Comparator\\NumericComparator'),
     35             array(0, 0, 'SebastianBergmann\\Comparator\\NumericComparator'),
     36             array(1.0, 0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
     37             array(0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
     38             array(1.0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
     39             array(array(1), array(1), 'SebastianBergmann\\Comparator\\ArrayComparator'),
     40             array($tmpfile, $tmpfile, 'SebastianBergmann\\Comparator\\ResourceComparator'),
     41             array(new \stdClass, new \stdClass, 'SebastianBergmann\\Comparator\\ObjectComparator'),
     42             array(new \DateTime, new \DateTime, 'SebastianBergmann\\Comparator\\DateTimeComparator'),
     43             array(new \SplObjectStorage, new \SplObjectStorage, 'SebastianBergmann\\Comparator\\SplObjectStorageComparator'),
     44             array(new \Exception, new \Exception, 'SebastianBergmann\\Comparator\\ExceptionComparator'),
     45             array(new \DOMDocument, new \DOMDocument, 'SebastianBergmann\\Comparator\\DOMNodeComparator'),
     46             // mixed types
     47             array($tmpfile, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
     48             array(array(1), $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
     49             array($tmpfile, '1', 'SebastianBergmann\\Comparator\\TypeComparator'),
     50             array('1', $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
     51             array($tmpfile, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
     52             array(new \stdClass, $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
     53             array(new \stdClass, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
     54             array(array(1), new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
     55             array(new \stdClass, '1', 'SebastianBergmann\\Comparator\\TypeComparator'),
     56             array('1', new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
     57             array(new ClassWithToString, '1', 'SebastianBergmann\\Comparator\\ScalarComparator'),
     58             array('1', new ClassWithToString, 'SebastianBergmann\\Comparator\\ScalarComparator'),
     59             array(1.0, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
     60             array(new \stdClass, 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'),
     61             array(1.0, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
     62             array(array(1), 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'),
     63         );
     64     }
     65 
     66     /**
     67      * @dataProvider instanceProvider
     68      * @covers       ::getComparatorFor
     69      * @covers       ::__construct
     70      */
     71     public function testGetComparatorFor($a, $b, $expected)
     72     {
     73         $factory = new Factory;
     74         $actual = $factory->getComparatorFor($a, $b);
     75         $this->assertInstanceOf($expected, $actual);
     76     }
     77 
     78     /**
     79      * @covers ::register
     80      */
     81     public function testRegister()
     82     {
     83         $comparator = new TestClassComparator;
     84 
     85         $factory = new Factory;
     86         $factory->register($comparator);
     87 
     88         $a = new TestClass;
     89         $b = new TestClass;
     90         $expected = 'SebastianBergmann\\Comparator\\TestClassComparator';
     91         $actual = $factory->getComparatorFor($a, $b);
     92 
     93         $factory->unregister($comparator);
     94         $this->assertInstanceOf($expected, $actual);
     95     }
     96 
     97     /**
     98      * @covers ::unregister
     99      */
    100     public function testUnregister()
    101     {
    102         $comparator = new TestClassComparator;
    103 
    104         $factory = new Factory;
    105         $factory->register($comparator);
    106         $factory->unregister($comparator);
    107 
    108         $a = new TestClass;
    109         $b = new TestClass;
    110         $expected = 'SebastianBergmann\\Comparator\\ObjectComparator';
    111         $actual = $factory->getComparatorFor($a, $b);
    112 
    113         $this->assertInstanceOf($expected, $actual);
    114     }
    115 }