mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
99 lines
2.8 KiB
PHP
99 lines
2.8 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
namespace Tests;
|
||
|
||
use ApprovalTests\Approvals;
|
||
use GildedRose\GildedRose;
|
||
use GildedRose\Item;
|
||
use PHPUnit\Framework\TestCase;
|
||
|
||
class GildedRoseTest extends TestCase
|
||
{
|
||
/**
|
||
* Aged Brie:sell_inが1以上、qualityが50未満
|
||
* 期待値:sell_inが-1、qualityが+1
|
||
*/
|
||
public function testAgedBrieNormal(): void
|
||
{
|
||
$items = [new Item('Aged Brie', 5, 10)];
|
||
$gildedRose = new GildedRose($items);
|
||
$gildedRose->updateQuality();
|
||
$this->assertSame('Aged Brie', $items[0]->name);
|
||
$this->assertSame(4, $items[0]->sell_in);
|
||
$this->assertSame(11, $items[0]->quality);
|
||
|
||
$items = [new Item('Aged Brie', 1, 49)];
|
||
$gildedRose = new GildedRose($items);
|
||
$gildedRose->updateQuality();
|
||
$this->assertSame('Aged Brie', $items[0]->name);
|
||
$this->assertSame(0, $items[0]->sell_in);
|
||
$this->assertSame(50, $items[0]->quality);
|
||
}
|
||
|
||
/**
|
||
* Aged Brie:sell_inが0以下、qualityが50未満
|
||
* 期待値:sell_inが-1、qualityが+2
|
||
*/
|
||
public function testAgedBrieSellIn0OrLess(): void
|
||
{
|
||
$items = [new Item('Aged Brie', 0, 10)];
|
||
$gildedRose = new GildedRose($items);
|
||
$gildedRose->updateQuality();
|
||
$this->assertSame('Aged Brie', $items[0]->name);
|
||
$this->assertSame(-1, $items[0]->sell_in);
|
||
$this->assertSame(12, $items[0]->quality);
|
||
|
||
$items = [new Item('Aged Brie', -1, 10)];
|
||
$gildedRose = new GildedRose($items);
|
||
$gildedRose->updateQuality();
|
||
$this->assertSame('Aged Brie', $items[0]->name);
|
||
$this->assertSame(-2, $items[0]->sell_in);
|
||
$this->assertSame(12, $items[0]->quality);
|
||
}
|
||
|
||
/**
|
||
* Aged Brie:sell_inが1以上、qualityが50
|
||
* 期待値:sell_inが-1、qualityは変更なし
|
||
*/
|
||
public function testAgedBrieQuality50(): void
|
||
{
|
||
$items = [new Item('Aged Brie', 5, 50)];
|
||
$gildedRose = new GildedRose($items);
|
||
$gildedRose->updateQuality();
|
||
$this->assertSame('Aged Brie', $items[0]->name);
|
||
$this->assertSame(4, $items[0]->sell_in);
|
||
$this->assertSame(50, $items[0]->quality);
|
||
}
|
||
|
||
// テストエラーの原因が特定できないので後で調査する
|
||
/*
|
||
public function testApproveArray()
|
||
{
|
||
$list = ['zero', 'oxe', 'two', 'three', 'four', 'five'];
|
||
Approvals::approveList($list);
|
||
}
|
||
|
||
public function testApproveMap()
|
||
{
|
||
$list = [
|
||
'zero' => 'Lance',
|
||
'one' => 'Jam',
|
||
'two' => 'James',
|
||
'three' => 'LLewellyn',
|
||
'four' => 'Asaph',
|
||
'five' => 'Dana'
|
||
];
|
||
Approvals::approveList($list);
|
||
}
|
||
|
||
public function testApproveString()
|
||
{
|
||
$fudge = 'fadge';
|
||
Approvals::approveString($fudge);
|
||
|
||
}
|
||
*/
|
||
}
|