oliverdavies.uk/modules/opd_presentations/tests/src/Traits/PresentationCreationTrait.php

50 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Drupal\Tests\opd_presentations\Traits;
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\Events;
use Drupal\opd_presentations\Presentation;
trait PresentationCreationTrait {
use EntityCreationTrait;
use NodeCreationTrait;
/**
* @param Event[] $events
* @param bool $isPublished
*/
private function createPresentation(Events $events, bool $isPublished = TRUE): Presentation {
$presentation = $this->createNode([
'field_events' => $events->toEvents(),
'status' => $isPublished,
'type' => Presentation::NODE_TYPE,
]);
assert($presentation instanceof Presentation);
return $presentation;
}
private function createEvent(string $eventName, Date $eventDate): Event {
$event = $this->createEntity(
entity_type: 'paragraph',
values: [
'field_date' => $eventDate->toTimestamp(),
'field_event_name' => $eventName,
'type' => Event::PARAGRAPH_TYPE,
],
);
assert($event instanceof Event);
return $event;
}
}