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

ObjectComparatorTest.php (4110B)


      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 use stdClass;
     14 
     15 /**
     16  * @coversDefaultClass SebastianBergmann\Comparator\ObjectComparator
     17  *
     18  */
     19 class ObjectComparatorTest extends \PHPUnit_Framework_TestCase
     20 {
     21     private $comparator;
     22 
     23     protected function setUp()
     24     {
     25         $this->comparator = new ObjectComparator;
     26         $this->comparator->setFactory(new Factory);
     27     }
     28 
     29     public function acceptsSucceedsProvider()
     30     {
     31         return array(
     32           array(new TestClass, new TestClass),
     33           array(new stdClass, new stdClass),
     34           array(new stdClass, new TestClass)
     35         );
     36     }
     37 
     38     public function acceptsFailsProvider()
     39     {
     40         return array(
     41           array(new stdClass, null),
     42           array(null, new stdClass),
     43           array(null, null)
     44         );
     45     }
     46 
     47     public function assertEqualsSucceedsProvider()
     48     {
     49         // cyclic dependencies
     50         $book1 = new Book;
     51         $book1->author = new Author('Terry Pratchett');
     52         $book1->author->books[] = $book1;
     53         $book2 = new Book;
     54         $book2->author = new Author('Terry Pratchett');
     55         $book2->author->books[] = $book2;
     56 
     57         $object1 = new SampleClass(4, 8, 15);
     58         $object2 = new SampleClass(4, 8, 15);
     59 
     60         return array(
     61           array($object1, $object1),
     62           array($object1, $object2),
     63           array($book1, $book1),
     64           array($book1, $book2),
     65           array(new Struct(2.3), new Struct(2.5), 0.5)
     66         );
     67     }
     68 
     69     public function assertEqualsFailsProvider()
     70     {
     71         $typeMessage = 'is not instance of expected class';
     72         $equalMessage = 'Failed asserting that two objects are equal.';
     73 
     74         // cyclic dependencies
     75         $book1 = new Book;
     76         $book1->author = new Author('Terry Pratchett');
     77         $book1->author->books[] = $book1;
     78         $book2 = new Book;
     79         $book2->author = new Author('Terry Pratch');
     80         $book2->author->books[] = $book2;
     81 
     82         $book3 = new Book;
     83         $book3->author = 'Terry Pratchett';
     84         $book4 = new stdClass;
     85         $book4->author = 'Terry Pratchett';
     86 
     87         $object1 = new SampleClass( 4,  8, 15);
     88         $object2 = new SampleClass(16, 23, 42);
     89 
     90         return array(
     91           array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42), $equalMessage),
     92           array($object1, $object2, $equalMessage),
     93           array($book1, $book2, $equalMessage),
     94           array($book3, $book4, $typeMessage),
     95           array(new Struct(2.3), new Struct(4.2), $equalMessage, 0.5)
     96         );
     97     }
     98 
     99     /**
    100      * @covers       ::accepts
    101      * @dataProvider acceptsSucceedsProvider
    102      */
    103     public function testAcceptsSucceeds($expected, $actual)
    104     {
    105         $this->assertTrue(
    106           $this->comparator->accepts($expected, $actual)
    107         );
    108     }
    109 
    110     /**
    111      * @covers       ::accepts
    112      * @dataProvider acceptsFailsProvider
    113      */
    114     public function testAcceptsFails($expected, $actual)
    115     {
    116         $this->assertFalse(
    117           $this->comparator->accepts($expected, $actual)
    118         );
    119     }
    120 
    121     /**
    122      * @covers       ::assertEquals
    123      * @dataProvider assertEqualsSucceedsProvider
    124      */
    125     public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
    126     {
    127         $exception = null;
    128 
    129         try {
    130             $this->comparator->assertEquals($expected, $actual, $delta);
    131         }
    132 
    133         catch (ComparisonFailure $exception) {
    134         }
    135 
    136         $this->assertNull($exception, 'Unexpected ComparisonFailure');
    137     }
    138 
    139     /**
    140      * @covers       ::assertEquals
    141      * @dataProvider assertEqualsFailsProvider
    142      */
    143     public function testAssertEqualsFails($expected, $actual, $message, $delta = 0.0)
    144     {
    145         $this->setExpectedException(
    146           'SebastianBergmann\\Comparator\\ComparisonFailure', $message
    147         );
    148         $this->comparator->assertEquals($expected, $actual, $delta);
    149     }
    150 }