You are here

public function DateRecurRlHelperUnitTest::testOccurrence in Recurring Dates Field 3.x

Same name and namespace in other branches
  1. 8.2 tests/src/Unit/DateRecurRlHelperUnitTest.php \Drupal\Tests\date_recur\Unit\DateRecurRlHelperUnitTest::testOccurrence()
  2. 3.0.x tests/src/Unit/DateRecurRlHelperUnitTest.php \Drupal\Tests\date_recur\Unit\DateRecurRlHelperUnitTest::testOccurrence()
  3. 3.1.x tests/src/Unit/DateRecurRlHelperUnitTest.php \Drupal\Tests\date_recur\Unit\DateRecurRlHelperUnitTest::testOccurrence()

Test occurrence generation with range limiters.

@covers ::getOccurrences @covers ::generateOccurrences

File

tests/src/Unit/DateRecurRlHelperUnitTest.php, line 27

Class

DateRecurRlHelperUnitTest
Tests Rlanvin implementation of helper.

Namespace

Drupal\Tests\date_recur\Unit

Code

public function testOccurrence() {
  $helper = $this
    ->createHelper('FREQ=DAILY;COUNT=1', new \DateTime('2am 14 April 2014'), new \DateTime('4am 14 April 2014'));

  // Test out of range (before).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('1am 14 April 2014'), new \DateTime('1:30am 14 April 2014'));
  $this
    ->assertCount(0, $occurrences);

  // Test out of range (after).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('4:30am 14 April 2014'), new \DateTime('5am 14 April 2014'));
  $this
    ->assertCount(0, $occurrences);

  // Test in range (intersects occurrence start).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('1am 14 April 2014'), new \DateTime('3am 14 April 2014'));
  $this
    ->assertCount(1, $occurrences);

  // Test in range (exact).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('2am 14 April 2014'), new \DateTime('4am 14 April 2014'));
  $this
    ->assertCount(1, $occurrences);

  // Test in range (within).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('2:30am 14 April 2014'), new \DateTime('3:30am 14 April 2014'));
  $this
    ->assertCount(1, $occurrences);

  // Test in range (intersects occurrence end).
  $occurrences = $helper
    ->getOccurrences(new \DateTime('3am 14 April 2014'), new \DateTime('5am 14 April 2014'));
  $this
    ->assertCount(1, $occurrences);

  // Test in range but zero limit.
  $occurrences = $helper
    ->getOccurrences(new \DateTime('1am 14 April 2014'), new \DateTime('3am 14 April 2014'), 0);
  $this
    ->assertCount(0, $occurrences);
}