97 lines
4.5 KiB
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());
|
|
}
|
|
}
|