<?php declare(strict_types=1); namespace DNW\Skills\Tests; use DNW\Skills\Team; use DNW\Skills\RatingContainer; use DNW\Skills\HashMap; use DNW\Skills\Player; use DNW\Skills\Rating; use DNW\Skills\Guard; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\UsesClass; #[CoversClass(Team::class)] #[CoversClass(RatingContainer::class)] #[UsesClass(Hashmap::class)] #[UsesClass(Player::class)] #[UsesClass(Rating::class)] #[UsesClass(Guard::class)] class TeamTest extends TestCase { public function testTeam(): void { $p1 = new Player(1); $p2 = new Player(2); $r1 = new Rating(100, 10); $r2 = new Rating(200, 20); $rc = new Team($p1, $r1); $this->assertEquals($r1, $rc->getRating($p1)); $this->assertEquals([$p1], $rc->getAllPlayers()); $this->assertEquals([$r1], $rc->getAllRatings()); $this->assertEquals(1, $rc->count()); $rc->addPlayer($p2, $r2); $this->assertEquals($r2, $rc->getRating($p2)); $this->assertEquals([$p1, $p2], $rc->getAllPlayers()); $this->assertEquals([$r1, $r2], $rc->getAllRatings()); $this->assertEquals(2, $rc->count()); } public function testTeamConstructor(): void { $p = new Player(0); $r = new Rating(100, 10); $rc = new Team(NULL, NULL); $this->assertEquals(0, $rc->count()); $rc = new Team($p, NULL); $this->assertEquals(0, $rc->count()); $rc = new Team(NULL, $r); $this->assertEquals(0, $rc->count()); $rc = new Team($p, $r); $this->assertEquals($r, $rc->getRating($p)); $this->assertEquals([$p], $rc->getAllPlayers()); $this->assertEquals([$r], $rc->getAllRatings()); $this->assertEquals(1, $rc->count()); } }