Added conjured items

This commit is contained in:
Elliott Allmann 2023-02-24 16:54:58 -08:00
parent eecaf8fbc0
commit 3b01a45cca
2 changed files with 64 additions and 1 deletions

View File

@ -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) {

View File

@ -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()
}