engelsystem/tests/Unit/Helpers/Schedule/ConferenceTest.php

97 lines
4.5 KiB
PHP

<?php
declare(strict_types=1);
namespace Engelsystem\Test\Unit\Helpers\Schedule;
use Engelsystem\Helpers\Schedule\Conference;
use Engelsystem\Helpers\Schedule\ConferenceColor;
use Engelsystem\Helpers\Schedule\ConferenceTrack;
use Engelsystem\Test\Unit\TestCase;
class ConferenceTest extends TestCase
{
/**
* @covers \Engelsystem\Helpers\Schedule\Conference::__construct
* @covers \Engelsystem\Helpers\Schedule\Conference::getTitle
* @covers \Engelsystem\Helpers\Schedule\Conference::getAcronym
* @covers \Engelsystem\Helpers\Schedule\Conference::getStart
* @covers \Engelsystem\Helpers\Schedule\Conference::getEnd
* @covers \Engelsystem\Helpers\Schedule\Conference::getDays
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeslotDuration
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeslotDurationSeconds
* @covers \Engelsystem\Helpers\Schedule\Conference::getBaseUrl
* @covers \Engelsystem\Helpers\Schedule\Conference::getLogo
* @covers \Engelsystem\Helpers\Schedule\Conference::getUrl
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeZoneName
* @covers \Engelsystem\Helpers\Schedule\Conference::getColor
* @covers \Engelsystem\Helpers\Schedule\Conference::getTracks
*/
public function testCreateDefault(): void
{
$conference = new Conference('Doing stuff', 'DS');
$this->assertEquals('Doing stuff', $conference->getTitle());
$this->assertEquals('DS', $conference->getAcronym());
$this->assertNull($conference->getStart());
$this->assertNull($conference->getEnd());
$this->assertNull($conference->getDays());
$this->assertNull($conference->getTimeslotDuration());
$this->assertNull($conference->getTimeslotDurationSeconds());
$this->assertNull($conference->getBaseUrl());
$this->assertNull($conference->getLogo());
$this->assertNull($conference->getUrl());
$this->assertNull($conference->getTimeZoneName());
$this->assertNull($conference->getColor());
$this->assertEmpty($conference->getTracks());
}
/**
* @covers \Engelsystem\Helpers\Schedule\Conference::__construct
* @covers \Engelsystem\Helpers\Schedule\Conference::getTitle
* @covers \Engelsystem\Helpers\Schedule\Conference::getAcronym
* @covers \Engelsystem\Helpers\Schedule\Conference::getStart
* @covers \Engelsystem\Helpers\Schedule\Conference::getEnd
* @covers \Engelsystem\Helpers\Schedule\Conference::getDays
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeslotDuration
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeslotDurationSeconds
* @covers \Engelsystem\Helpers\Schedule\Conference::getBaseUrl
* @covers \Engelsystem\Helpers\Schedule\Conference::getLogo
* @covers \Engelsystem\Helpers\Schedule\Conference::getUrl
* @covers \Engelsystem\Helpers\Schedule\Conference::getTimeZoneName
* @covers \Engelsystem\Helpers\Schedule\Conference::getColor
* @covers \Engelsystem\Helpers\Schedule\Conference::getTracks
*/
public function testCreate(): void
{
$conference = new Conference(
'Doing stuff',
'DS',
'2042-01-01',
'2042-01-10',
10,
'00:10',
'https://foo.bar/schedule',
'https://foo.bar/logo.png',
'https://foo.bar',
'Europe/Berlin',
new ConferenceColor('#ffffff'),
[new ConferenceTrack('Test')]
);
$this->assertEquals('Doing stuff', $conference->getTitle());
$this->assertEquals('DS', $conference->getAcronym());
$this->assertEquals('2042-01-01', $conference->getStart());
$this->assertEquals('2042-01-10', $conference->getEnd());
$this->assertEquals(10, $conference->getDays());
$this->assertEquals('00:10', $conference->getTimeslotDuration());
$this->assertEquals(60 * 10, $conference->getTimeslotDurationSeconds());
$this->assertEquals('https://foo.bar/schedule', $conference->getBaseUrl());
$this->assertEquals('https://foo.bar/logo.png', $conference->getLogo());
$this->assertEquals('https://foo.bar', $conference->getUrl());
$this->assertEquals('Europe/Berlin', $conference->getTimeZoneName());
$this->assertNotNull($conference->getColor());
$this->assertEquals('#ffffff', $conference->getColor()->getPrimary());
$this->assertNotNull($conference->getTracks());
$this->assertEquals('Test', $conference->getTracks()[0]->getName());
}
}