mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 06:21:29 +00:00
53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpUnitTests\GildedRoseItem;
|
|
|
|
use ApprovalTests\Approvals;
|
|
use GildedRose\GildedRoseItem;
|
|
use GildedRose\GildedRoseItem\ConjuredItem;
|
|
use GildedRose\GildedRoseItemFactory;
|
|
use GildedRose\Item;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class ConjuredItemTest extends TestCase
|
|
{
|
|
public function testNormalQualityReduction(): void
|
|
{
|
|
$item = new Item(ConjuredItem::NAME, 20, 20);
|
|
$gildedRoseItem = new ConjuredItem($item);
|
|
$gildedRoseItem->ageByOneDay();
|
|
|
|
$this->assertEquals(18, $item->quality);
|
|
$this->assertEquals(19, $item->sellIn);
|
|
}
|
|
|
|
public function testQualityCantBeNegative(): void
|
|
{
|
|
$item = new Item(ConjuredItem::NAME, 20, 0);
|
|
$gildedRoseItem = new ConjuredItem($item);
|
|
$gildedRoseItem->ageByOneDay();
|
|
|
|
$this->assertEquals(0, $item->quality);
|
|
}
|
|
|
|
public function testQualityDegradesTwiceAsFastAsDefault(): void
|
|
{
|
|
$item = new Item(ConjuredItem::NAME, 20, 20);
|
|
$gildedRoseItem = new ConjuredItem($item);
|
|
$gildedRoseItem->ageByOneDay();
|
|
|
|
$this->assertEquals(18, $item->quality);
|
|
}
|
|
|
|
public function testQualityDegradesTwiceAsFastAfterSellBy(): void
|
|
{
|
|
$item = new Item(ConjuredItem::NAME, 0, 20);
|
|
$gildedRoseItem = new ConjuredItem($item);
|
|
$gildedRoseItem->ageByOneDay();
|
|
|
|
$this->assertEquals(16, $item->quality);
|
|
}
|
|
}
|