Revert "Add PresentationBuilder"

This reverts commit 9148ec5a65.
This commit is contained in:
Oliver Davies 2025-06-15 09:43:43 +01:00
parent 8016f96b97
commit 678263c75c
3 changed files with 47 additions and 77 deletions

View file

@ -1,40 +0,0 @@
<?php
declare(strict_types=1);
namespace Drupal\opd_presentations;
final class PresentationBuilder {
public function __construct(
private string $title,
private array $events = [],
private bool $isPublished = TRUE,
) {
}
public function build(): Presentation {
return Presentation::create([
'field_events' => $this->events,
'status' => $this->isPublished,
'title' => $this->title,
]);
}
public function setEvents(array $events): self {
$this->events = $events;
return $this;
}
public function setPublished(bool $isPublished = TRUE): self {
$this->isPublished = $isPublished;
return $this;
}
public static function create(string $title): self {
return new self($title);
}
}

View file

@ -7,7 +7,6 @@ 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\PresentationBuilder;
use Drupal\opd_presentations\PresentationCounter;
use weitzman\DrupalTestTraits\ExistingSiteBase;
@ -20,16 +19,14 @@ final class PresentationCounterTest extends ExistingSiteBase {
$counter = $this->container->get(PresentationCounter::class);
assert($counter instanceof PresentationCounter);
$events = [
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
];
PresentationBuilder::create('')
->setEvents($events)
->build();
$this->createPresentation(
events: [
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
],
);
$this->assertGreaterThanOrEqual(
actual: $counter->getPastCount(),
@ -43,17 +40,15 @@ final class PresentationCounterTest extends ExistingSiteBase {
$count = $counter->getPastCount();
$events = [
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
];
$presentation = PresentationBuilder::create('')
->setEvents($events)
->setPublished(FALSE)
->build();
$this->createPresentation(
events: [
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
],
isPublished: FALSE,
);
$this->assertSame(
actual: $counter->getPastCount(),
@ -73,22 +68,19 @@ final class PresentationCounterTest extends ExistingSiteBase {
expected: 0,
);
$events = [
$this->createEvent(
eventDate: Date::fromString('tomorrow'),
eventName: $this->randomString(),
),
$this->createPresentation(
events: [
$this->createEvent(
eventDate: Date::fromString('tomorrow'),
eventName: $this->randomString(),
),
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
];
$presentation = PresentationBuilder::create($this->randomString())
->setEvents($events)
->build();
$presentation->save();
$this->createEvent(
eventDate: Date::fromString('yesterday'),
eventName: $this->randomString(),
),
],
);
$counter = $this->container->get(PresentationCounter::class);

View file

@ -4,14 +4,32 @@ declare(strict_types=1);
namespace Drupal\Tests\opd_presentations\Traits;
use Drupal\Core\Datetime\DrupalDateTime;
use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\ctools\Testing\EntityCreationTrait;
use Drupal\opd_presentations\Date;
use Drupal\opd_presentations\Event;
use Drupal\opd_presentations\Presentation;
trait PresentationCreationTrait {
use EntityCreationTrait;
use NodeCreationTrait;
/**
* @param Event[] $events
*/
private function createPresentation(array $events, bool $isPublished = TRUE): Presentation {
$presentation = $this->createNode([
'field_events' => $events,
'status' => $isPublished,
'type' => Presentation::NODE_TYPE,
]);
assert($presentation instanceof Presentation);
return $presentation;
}
private function createEvent(string $eventName, Date $eventDate): Event {
$event = $this->createEntity(