You are here

class DateTimeComparatorTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/sebastian/comparator/tests/DateTimeComparatorTest.php \SebastianBergmann\Comparator\DateTimeComparatorTest

@coversDefaultClass SebastianBergmann\Comparator\DateTimeComparator

Hierarchy

  • class \SebastianBergmann\Comparator\DateTimeComparatorTest extends \SebastianBergmann\Comparator\PHPUnit_Framework_TestCase

Expanded class hierarchy of DateTimeComparatorTest

File

vendor/sebastian/comparator/tests/DateTimeComparatorTest.php, line 21

Namespace

SebastianBergmann\Comparator
View source
class DateTimeComparatorTest extends \PHPUnit_Framework_TestCase {
  private $comparator;
  protected function setUp() {
    $this->comparator = new DateTimeComparator();
  }
  public function acceptsFailsProvider() {
    $datetime = new DateTime();
    return array(
      array(
        $datetime,
        null,
      ),
      array(
        null,
        $datetime,
      ),
      array(
        null,
        null,
      ),
    );
  }
  public function assertEqualsSucceedsProvider() {
    return array(
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
        10,
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
        65,
      ),
      array(
        new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago')),
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
        15,
      ),
      array(
        new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
      ),
      array(
        new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
        100,
      ),
      array(
        new DateTime('@1364616000'),
        new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
      ),
      array(
        new DateTime('2013-03-29T05:13:35-0500'),
        new DateTime('2013-03-29T04:13:35-0600'),
      ),
    );
  }
  public function assertEqualsFailsProvider() {
    return array(
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
        3500,
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
        3500,
      ),
      array(
        new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
      ),
      array(
        new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
        43200,
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
      ),
      array(
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
        3500,
      ),
      array(
        new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
        new DateTime('2013-03-30', new DateTimeZone('America/Chicago')),
      ),
      array(
        new DateTime('2013-03-29T05:13:35-0600'),
        new DateTime('2013-03-29T04:13:35-0600'),
      ),
      array(
        new DateTime('2013-03-29T05:13:35-0600'),
        new DateTime('2013-03-29T05:13:35-0500'),
      ),
    );
  }

  /**
   * @covers  ::accepts
   */
  public function testAcceptsSucceeds() {
    $this
      ->assertTrue($this->comparator
      ->accepts(new DateTime(), new DateTime()));
  }

  /**
   * @covers       ::accepts
   * @dataProvider acceptsFailsProvider
   */
  public function testAcceptsFails($expected, $actual) {
    $this
      ->assertFalse($this->comparator
      ->accepts($expected, $actual));
  }

  /**
   * @covers       ::assertEquals
   * @dataProvider assertEqualsSucceedsProvider
   */
  public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0) {
    $exception = null;
    try {
      $this->comparator
        ->assertEquals($expected, $actual, $delta);
    } catch (ComparisonFailure $exception) {
    }
    $this
      ->assertNull($exception, 'Unexpected ComparisonFailure');
  }

  /**
   * @covers       ::assertEquals
   * @dataProvider assertEqualsFailsProvider
   */
  public function testAssertEqualsFails($expected, $actual, $delta = 0.0) {
    $this
      ->setExpectedException('SebastianBergmann\\Comparator\\ComparisonFailure', 'Failed asserting that two DateTime objects are equal.');
    $this->comparator
      ->assertEquals($expected, $actual, $delta);
  }

  /**
   * @requires PHP 5.5
   * @covers   ::accepts
   */
  public function testAcceptsDateTimeInterface() {
    $this
      ->assertTrue($this->comparator
      ->accepts(new DateTime(), new DateTimeImmutable()));
  }

  /**
   * @requires PHP 5.5
   * @covers   ::assertEquals
   */
  public function testSupportsDateTimeInterface() {
    $this->comparator
      ->assertEquals(new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')), new DateTimeImmutable('2013-03-29 04:13:35', new DateTimeZone('America/New_York')));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DateTimeComparatorTest::$comparator private property
DateTimeComparatorTest::acceptsFailsProvider public function
DateTimeComparatorTest::assertEqualsFailsProvider public function
DateTimeComparatorTest::assertEqualsSucceedsProvider public function
DateTimeComparatorTest::setUp protected function
DateTimeComparatorTest::testAcceptsDateTimeInterface public function @requires PHP 5.5 @covers ::accepts
DateTimeComparatorTest::testAcceptsFails public function @covers ::accepts @dataProvider acceptsFailsProvider
DateTimeComparatorTest::testAcceptsSucceeds public function @covers ::accepts
DateTimeComparatorTest::testAssertEqualsFails public function @covers ::assertEquals @dataProvider assertEqualsFailsProvider
DateTimeComparatorTest::testAssertEqualsSucceeds public function @covers ::assertEquals @dataProvider assertEqualsSucceedsProvider
DateTimeComparatorTest::testSupportsDateTimeInterface public function @requires PHP 5.5 @covers ::assertEquals