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

DateTimeComparatorTest.php (6845B)


      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 DateTime;
     14 use DateTimeImmutable;
     15 use DateTimeZone;
     16 
     17 /**
     18  * @coversDefaultClass SebastianBergmann\Comparator\DateTimeComparator
     19  *
     20  */
     21 class DateTimeComparatorTest extends \PHPUnit_Framework_TestCase
     22 {
     23     private $comparator;
     24 
     25     protected function setUp()
     26     {
     27         $this->comparator = new DateTimeComparator;
     28     }
     29 
     30     public function acceptsFailsProvider()
     31     {
     32         $datetime = new DateTime;
     33 
     34         return array(
     35           array($datetime, null),
     36           array(null, $datetime),
     37           array(null, null)
     38         );
     39     }
     40 
     41     public function assertEqualsSucceedsProvider()
     42     {
     43         return array(
     44           array(
     45             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     46             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York'))
     47           ),
     48           array(
     49             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     50             new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
     51             10
     52           ),
     53           array(
     54             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     55             new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
     56             65
     57           ),
     58           array(
     59             new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
     60             new DateTime('2013-03-29', new DateTimeZone('America/New_York'))
     61           ),
     62           array(
     63             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     64             new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago'))
     65           ),
     66           array(
     67             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     68             new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
     69             15
     70           ),
     71           array(
     72             new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
     73             new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
     74           ),
     75           array(
     76             new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
     77             new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
     78             100
     79           ),
     80           array(
     81             new DateTime('@1364616000'),
     82             new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
     83           ),
     84           array(
     85             new DateTime('2013-03-29T05:13:35-0500'),
     86             new DateTime('2013-03-29T04:13:35-0600')
     87           )
     88         );
     89     }
     90 
     91     public function assertEqualsFailsProvider()
     92     {
     93         return array(
     94           array(
     95             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
     96             new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York'))
     97           ),
     98           array(
     99             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
    100             new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
    101             3500
    102           ),
    103           array(
    104             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
    105             new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
    106             3500
    107           ),
    108           array(
    109             new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
    110             new DateTime('2013-03-30', new DateTimeZone('America/New_York'))
    111           ),
    112           array(
    113             new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
    114             new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
    115             43200
    116           ),
    117           array(
    118             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
    119             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
    120           ),
    121           array(
    122             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
    123             new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
    124             3500
    125           ),
    126           array(
    127             new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
    128             new DateTime('2013-03-30', new DateTimeZone('America/Chicago'))
    129           ),
    130           array(
    131             new DateTime('2013-03-29T05:13:35-0600'),
    132             new DateTime('2013-03-29T04:13:35-0600')
    133           ),
    134           array(
    135             new DateTime('2013-03-29T05:13:35-0600'),
    136             new DateTime('2013-03-29T05:13:35-0500')
    137           ),
    138         );
    139     }
    140 
    141     /**
    142      * @covers  ::accepts
    143      */
    144     public function testAcceptsSucceeds()
    145     {
    146         $this->assertTrue(
    147           $this->comparator->accepts(
    148             new DateTime,
    149             new DateTime
    150           )
    151         );
    152     }
    153 
    154     /**
    155      * @covers       ::accepts
    156      * @dataProvider acceptsFailsProvider
    157      */
    158     public function testAcceptsFails($expected, $actual)
    159     {
    160         $this->assertFalse(
    161           $this->comparator->accepts($expected, $actual)
    162         );
    163     }
    164 
    165     /**
    166      * @covers       ::assertEquals
    167      * @dataProvider assertEqualsSucceedsProvider
    168      */
    169     public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
    170     {
    171         $exception = null;
    172 
    173         try {
    174             $this->comparator->assertEquals($expected, $actual, $delta);
    175         }
    176 
    177         catch (ComparisonFailure $exception) {
    178         }
    179 
    180         $this->assertNull($exception, 'Unexpected ComparisonFailure');
    181     }
    182 
    183     /**
    184      * @covers       ::assertEquals
    185      * @dataProvider assertEqualsFailsProvider
    186      */
    187     public function testAssertEqualsFails($expected, $actual, $delta = 0.0)
    188     {
    189         $this->setExpectedException(
    190           'SebastianBergmann\\Comparator\\ComparisonFailure',
    191           'Failed asserting that two DateTime objects are equal.'
    192         );
    193         $this->comparator->assertEquals($expected, $actual, $delta);
    194     }
    195 
    196     /**
    197      * @requires PHP 5.5
    198      * @covers   ::accepts
    199      */
    200     public function testAcceptsDateTimeInterface()
    201     {
    202         $this->assertTrue($this->comparator->accepts(new DateTime, new DateTimeImmutable));
    203     }
    204 
    205     /**
    206      * @requires PHP 5.5
    207      * @covers   ::assertEquals
    208      */
    209     public function testSupportsDateTimeInterface()
    210     {
    211         $this->comparator->assertEquals(
    212           new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
    213           new DateTimeImmutable('2013-03-29 04:13:35', new DateTimeZone('America/New_York'))
    214         );
    215     }
    216 }