mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
Added conjured items
This commit is contained in:
parent
eecaf8fbc0
commit
3b01a45cca
@ -22,7 +22,13 @@ final class GildedRose
|
|||||||
public function updateQuality(): void
|
public function updateQuality(): void
|
||||||
{
|
{
|
||||||
foreach ($this->items as $item) {
|
foreach ($this->items as $item) {
|
||||||
switch ($item->name) {
|
|
||||||
|
$name = $item->name;
|
||||||
|
if(str_starts_with(strtolower($name), 'conjured')) {
|
||||||
|
$name = 'conjured';
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($name) {
|
||||||
case 'Aged Brie':
|
case 'Aged Brie':
|
||||||
$item->sellIn--;
|
$item->sellIn--;
|
||||||
if ($item->quality < 50) {
|
if ($item->quality < 50) {
|
||||||
@ -51,6 +57,15 @@ final class GildedRose
|
|||||||
case 'Sulfuras, Hand of Ragnaros':
|
case 'Sulfuras, Hand of Ragnaros':
|
||||||
$item->quality = 80;
|
$item->quality = 80;
|
||||||
break;
|
break;
|
||||||
|
case 'conjured':
|
||||||
|
$item->sellIn--;
|
||||||
|
if($item->quality > 0) {
|
||||||
|
$item->quality--;
|
||||||
|
if($item->quality > 0) {
|
||||||
|
$item->quality--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
default: // Normal Items
|
default: // Normal Items
|
||||||
$item->sellIn--;
|
$item->sellIn--;
|
||||||
if ($item->quality > 0) {
|
if ($item->quality > 0) {
|
||||||
|
|||||||
@ -405,4 +405,52 @@ class GildedRoseTest extends TestCase
|
|||||||
$this->assertSame(0, $updatedItems[0]->quality);
|
$this->assertSame(0, $updatedItems[0]->quality);
|
||||||
} // END testBackstagePassQualityIs0AfterConcert()
|
} // END testBackstagePassQualityIs0AfterConcert()
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Items test
|
||||||
|
*/
|
||||||
|
public function testConjuredItemQualityDegrade(): void
|
||||||
|
{
|
||||||
|
echo ("Starting " . __FUNCTION__ . PHP_EOL);
|
||||||
|
|
||||||
|
$name = "ConjuredFoo";
|
||||||
|
$sellIn = 10;
|
||||||
|
$quality = 20;
|
||||||
|
|
||||||
|
$items = [
|
||||||
|
new Item($name, $sellIn, $quality)
|
||||||
|
];
|
||||||
|
|
||||||
|
$gildedRose = new GildedRose($items);
|
||||||
|
|
||||||
|
$gildedRose->updateQuality();
|
||||||
|
|
||||||
|
$conjuredItems = $gildedRose->getItems();
|
||||||
|
$this->assertSame($name, $conjuredItems[0]->name);
|
||||||
|
$this->assertSame(($sellIn - 1), $conjuredItems[0]->sellIn);
|
||||||
|
$this->assertSame(($quality - 2), $conjuredItems[0]->quality);
|
||||||
|
} // END testConjuredItemQualityDegrade()
|
||||||
|
|
||||||
|
public function testConjuredAgedBrieQualityDegradeAsNormal(): void
|
||||||
|
{
|
||||||
|
echo ("Starting " . __FUNCTION__ . PHP_EOL);
|
||||||
|
|
||||||
|
$name = "Conjured Aged Brie";
|
||||||
|
$sellIn = 10;
|
||||||
|
$quality = 20;
|
||||||
|
|
||||||
|
$items = [
|
||||||
|
new Item($name, $sellIn, $quality)
|
||||||
|
];
|
||||||
|
|
||||||
|
$gildedRose = new GildedRose($items);
|
||||||
|
|
||||||
|
$gildedRose->updateQuality();
|
||||||
|
|
||||||
|
$conjuredItems = $gildedRose->getItems();
|
||||||
|
$this->assertSame($name, $conjuredItems[0]->name);
|
||||||
|
$this->assertSame(($sellIn - 1), $conjuredItems[0]->sellIn);
|
||||||
|
$this->assertSame(($quality - 2), $conjuredItems[0]->quality);
|
||||||
|
} // END testConjuredAgedBrieQualityDegradeAsNormal()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user