function testFoo() { $items = array(new Item("foo", 0, 0)); $gildedRose = new GildedRose($items); $gildedRose->update_quality(); $this->assertEquals("fixme", $items[0]->name); }
<?php require_once 'gilded_rose.php'; echo "OMGHAI!\n"; $items = array(new Item('+5 Dexterity Vest', 10, 20), new Item('Aged Brie', 2, 0), new Item('Elixir of the Mongoose', 5, 7), new Item('Sulfuras, Hand of Ragnaros', 0, 80), new Item('Sulfuras, Hand of Ragnaros', -1, 80), new Item('Backstage passes to a TAFKAL80ETC concert', 15, 20), new Item('Backstage passes to a TAFKAL80ETC concert', 10, 49), new Item('Backstage passes to a TAFKAL80ETC concert', 5, 49), new Item('Conjured Mana Cake', 3, 6)); $app = new GildedRose($items); $days = 2; if (count($argv) > 1) { $days = (int) $argv[1]; } for ($i = 0; $i < $days; $i++) { echo "-------- day {$i} --------\n"; echo "name, sellIn, quality\n"; foreach ($items as $item) { echo $item . PHP_EOL; } echo PHP_EOL; $app->update_quality(); }
function testConjuredItems() { $items = array(new Item('Conjured Mana Cake', 3, 8), new Item('Conjured Mana Cake', 1, 8), new Item('Conjured Mana Cake', 0, 3)); $gildedRose = new GildedRose($items); // test assertions $gildedRose->update_quality(); // Conjured items degrade 2 in a normal day $this->assertEquals(2, $items[0]->sell_in); $this->assertEquals(6, $items[0]->quality); // check for a degrade of 2 that will increase to 4 upon expiration $this->assertEquals(0, $items[1]->sell_in); $this->assertEquals(6, $items[1]->quality); // ensure can't return negative sell_in values, and non-negative qualities $this->assertEquals(0, $items[2]->sell_in); $this->assertEquals(0, $items[2]->quality); // second iteration to test progressions $gildedRose->update_quality(); // Conjured items degrade 2 in a normal day $this->assertEquals(1, $items[0]->sell_in); $this->assertEquals(4, $items[0]->quality); // check for a degrade of 2 that will increase to 4 upon expiration $this->assertEquals(0, $items[1]->sell_in); $this->assertEquals(2, $items[1]->quality); // ensure can't return negative sell_in values, and non-negative qualities $this->assertEquals(0, $items[2]->sell_in); $this->assertEquals(0, $items[2]->quality); }