public function test() { $received = ""; $items = $this->makeItems(); $sut = new GildedRose($items); for ($day = 1; $day <= 100; $day++) { $received .= $this->formatItemsForDay($day, $items); $sut->updateQuality(); } $receivedExpected = $this->compareToApproved($received); if (!$receivedExpected) { $this->writeReceivedFile($received); } $this->assertTrue($receivedExpected, "Did not match approved results. Compare files '" . self::GILDED_ROSE_APPROVED_FILE . "' and '" . self::GILDED_ROSE_RECEIVED_FILE . "'"); }
/** * @param $item */ private function updateQualityForItem($item) { $rose = new GildedRose(array($item)); $rose->updateQuality(); }
<?php require_once 'GildedRose.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->updateQuality(); }