<?php namespace Blackbirdchess\Tests\Service\Import\Readers; 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 = new Swar5(); $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); } }