41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace BattleForge\Tests\Unit\Domain;
|
|
|
|
use BattleForge\Domain\Terrain;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class TerrainTest extends TestCase
|
|
{
|
|
public function testOpenCostsOne(): void
|
|
{
|
|
self::assertSame(1, Terrain::Open->movementCost());
|
|
self::assertSame(0, Terrain::Open->defenseBonus());
|
|
}
|
|
|
|
public function testForestCostsTwoAndGivesOneDefense(): void
|
|
{
|
|
self::assertSame(2, Terrain::Forest->movementCost());
|
|
self::assertSame(1, Terrain::Forest->defenseBonus());
|
|
}
|
|
|
|
public function testRoughCostsTwoAndGivesNoDefense(): void
|
|
{
|
|
self::assertSame(2, Terrain::Rough->movementCost());
|
|
self::assertSame(0, Terrain::Rough->defenseBonus());
|
|
}
|
|
|
|
public function testWaterCostsThreeAndGivesNoDefense(): void
|
|
{
|
|
self::assertSame(3, Terrain::Water->movementCost());
|
|
self::assertSame(0, Terrain::Water->defenseBonus());
|
|
}
|
|
|
|
public function testBlockingIsImpassable(): void
|
|
{
|
|
self::assertNull(Terrain::Blocking->movementCost());
|
|
}
|
|
}
|