/var/www/hkosl.com/nick/codeigniter/application/vendor/sebastian/comparator/tests/FactoryTest.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?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;

/**
 * @coversDefaultClass SebastianBergmann\Comparator\Factory
 *
 */
class FactoryTest extends \PHPUnit_Framework_TestCase
{
    public function 
instanceProvider()
    {
        
$tmpfile tmpfile();

        return array(
            array(
NULLNULL'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
NULLTRUE'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
TRUENULL'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
TRUETRUE'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
FALSEFALSE'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
TRUEFALSE'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
FALSETRUE'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
'''''SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
'0''0''SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
'0'0'SebastianBergmann\\Comparator\\NumericComparator'),
            array(
0'0''SebastianBergmann\\Comparator\\NumericComparator'),
            array(
00'SebastianBergmann\\Comparator\\NumericComparator'),
            array(
1.00'SebastianBergmann\\Comparator\\DoubleComparator'),
            array(
01.0'SebastianBergmann\\Comparator\\DoubleComparator'),
            array(
1.01.0'SebastianBergmann\\Comparator\\DoubleComparator'),
            array(array(
1), array(1), 'SebastianBergmann\\Comparator\\ArrayComparator'),
            array(
$tmpfile$tmpfile'SebastianBergmann\\Comparator\\ResourceComparator'),
            array(new \
stdClass, new \stdClass'SebastianBergmann\\Comparator\\ObjectComparator'),
            array(new \
DateTime, new \DateTime'SebastianBergmann\\Comparator\\DateTimeComparator'),
            array(new \
SplObjectStorage, new \SplObjectStorage'SebastianBergmann\\Comparator\\SplObjectStorageComparator'),
            array(new \
Exception, new \Exception'SebastianBergmann\\Comparator\\ExceptionComparator'),
            array(new \
DOMDocument, new \DOMDocument'SebastianBergmann\\Comparator\\DOMNodeComparator'),
            
// mixed types
            
array($tmpfile, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
            array(array(
1), $tmpfile'SebastianBergmann\\Comparator\\TypeComparator'),
            array(
$tmpfile'1''SebastianBergmann\\Comparator\\TypeComparator'),
            array(
'1'$tmpfile'SebastianBergmann\\Comparator\\TypeComparator'),
            array(
$tmpfile, new \stdClass'SebastianBergmann\\Comparator\\TypeComparator'),
            array(new \
stdClass$tmpfile'SebastianBergmann\\Comparator\\TypeComparator'),
            array(new \
stdClass, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
            array(array(
1), new \stdClass'SebastianBergmann\\Comparator\\TypeComparator'),
            array(new \
stdClass'1''SebastianBergmann\\Comparator\\TypeComparator'),
            array(
'1', new \stdClass'SebastianBergmann\\Comparator\\TypeComparator'),
            array(new 
ClassWithToString'1''SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
'1', new ClassWithToString'SebastianBergmann\\Comparator\\ScalarComparator'),
            array(
1.0, new \stdClass'SebastianBergmann\\Comparator\\TypeComparator'),
            array(new \
stdClass1.0'SebastianBergmann\\Comparator\\TypeComparator'),
            array(
1.0, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
            array(array(
1), 1.0'SebastianBergmann\\Comparator\\TypeComparator'),
        );
    }

    
/**
     * @dataProvider instanceProvider
     * @covers       ::getComparatorFor
     * @covers       ::__construct
     */
    
public function testGetComparatorFor($a$b$expected)
    {
        
$factory = new Factory;
        
$actual $factory->getComparatorFor($a$b);
        
$this->assertInstanceOf($expected$actual);
    }

    
/**
     * @covers ::register
     */
    
public function testRegister()
    {
        
$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);
    }

    
/**
     * @covers ::unregister
     */
    
public function testUnregister()
    {
        
$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);
    }
}