blackbirdchess-service-import/tests/Readers/Swar5Test.php

73 lines
2.2 KiB
PHP

<?php
namespace Blackbirdchess\Tests\Service\Import\Readers;
use Blackbirdchess\Service\Import\IOFactory;
use Blackbirdchess\Service\Import\Readers\Swar5;
use Blackbirdchess\Service\Results\Enums\Title;
use Blackbirdchess\Service\Results\Player;
use PHPUnit\Framework\TestCase;
class Swar5Test extends TestCase
{
private string $testfile = '/res/Swar5-testfile.swar';
private Swar5 $testobject;
public function setUp(): void
{
$root = NULL;
$directory = dirname(__FILE__);
do {
$directory = dirname($directory);
$composer = $directory . '/composer.json';
if(file_exists($composer)) $root = $directory;
} while(is_null($root) && $directory != '/');
$this->testfile = $directory . $this->testfile;
$this->testobject = IOFactory::createReader('Swar-5');
$this->testobject->read($this->testfile);
}
public function testReadTournamentName(): void
{
$this->assertEquals('Blackbird Chess Unit Test Tournament', $this->testobject->Tournament->Name);
}
public function testReadTournamentOrganiser(): void
{
$this->assertEquals('Blackbird Chess Developers', $this->testobject->Tournament->Organiser);
}
public function testReadTournamentLocation(): void
{
$this->assertEquals('Waregem', $this->testobject->Tournament->OrganiserPlace);
}
public function testHas8Players(): void
{
$this->assertCount(8, $this->testobject->Tournament->Players);
}
public function testHas7Rounds(): void
{
$this->assertCount(7, $this->testobject->Tournament->Rounds);
}
public function testPlayerHas7Pairings(): void
{
$this->assertCount(7, $this->testobject->Tournament->Players[0]->Pairings);
}
public function testPlayerHasTitle(): void
{
$player = Player::PlayersByName('Player 1', $this->testobject->Tournament)[0];
$this->assertInstanceOf(Title::class, $player->Title);
}
public function testPlayerHasNoTitle(): void
{
$player = Player::PlayersByName('Player 3', $this->testobject->Tournament)[0];
$this->assertNull($player->Title);
}
}