76 lines
2.1 KiB
PHP
76 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Drupal\Tests\opd_presentations;
|
|
|
|
use Drupal\Tests\RandomGeneratorTrait;
|
|
use Drupal\Tests\opd_presentations\Traits\PresentationCreationTrait;
|
|
use Drupal\opd_presentations\Date;
|
|
use Drupal\opd_presentations\Events;
|
|
use Drupal\opd_presentations\PresentationCounter;
|
|
use Drupal\opd_presentations\Repository\PresentationRepositoryInterface;
|
|
use weitzman\DrupalTestTraits\ExistingSiteBase;
|
|
|
|
final class PresentationCounterTest extends ExistingSiteBase {
|
|
|
|
use PresentationCreationTrait;
|
|
use RandomGeneratorTrait;
|
|
|
|
public function test_it_counts_events(): void {
|
|
$counter = $this->container->get(PresentationCounter::class);
|
|
assert($counter instanceof PresentationCounter);
|
|
|
|
$this->createPresentation(
|
|
Events::fromDateStrings('yesterday'),
|
|
);
|
|
|
|
$this->assertGreaterThanOrEqual(
|
|
actual: $counter->getPastCount(),
|
|
expected: 1,
|
|
);
|
|
}
|
|
|
|
public function test_it_only_counts_published_events(): void {
|
|
$counter = $this->container->get(PresentationCounter::class);
|
|
assert($counter instanceof PresentationCounter);
|
|
|
|
$count = $counter->getPastCount();
|
|
|
|
$this->createPresentation(
|
|
events: Events::fromDateStrings('yesterday'),
|
|
isPublished: FALSE,
|
|
);
|
|
|
|
$this->assertSame(
|
|
actual: $counter->getPastCount(),
|
|
expected: $count,
|
|
);
|
|
}
|
|
|
|
public function test_it_only_counts_past_events(): void {
|
|
$counter = $this->container->get(PresentationCounter::class);
|
|
assert($counter instanceof PresentationCounter);
|
|
|
|
// Get the existing presentation count (including existing nodes).
|
|
$originalCount = $counter->getPastCount();
|
|
|
|
$this->assertGreaterThanOrEqual(
|
|
actual: $originalCount,
|
|
expected: 0,
|
|
);
|
|
|
|
$this->createPresentation(
|
|
Events::fromDateStrings('tomorrow', 'yesterday'),
|
|
);
|
|
|
|
$counter = $this->container->get(PresentationCounter::class);
|
|
|
|
// Ensure the count has only increased by one, even though a future and past event were created.
|
|
$this->assertSame(
|
|
actual: $counter->getPastCount(),
|
|
expected: $originalCount + 1,
|
|
);
|
|
}
|
|
|
|
}
|