mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +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
|
||||
{
|
||||
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':
|
||||
$item->sellIn--;
|
||||
if ($item->quality < 50) {
|
||||
@ -51,6 +57,15 @@ final class GildedRose
|
||||
case 'Sulfuras, Hand of Ragnaros':
|
||||
$item->quality = 80;
|
||||
break;
|
||||
case 'conjured':
|
||||
$item->sellIn--;
|
||||
if($item->quality > 0) {
|
||||
$item->quality--;
|
||||
if($item->quality > 0) {
|
||||
$item->quality--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: // Normal Items
|
||||
$item->sellIn--;
|
||||
if ($item->quality > 0) {
|
||||
|
||||
@ -405,4 +405,52 @@ class GildedRoseTest extends TestCase
|
||||
$this->assertSame(0, $updatedItems[0]->quality);
|
||||
} // 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