factory = new GildedRoseItemFactory(); } public function testCreatingDefaultItem(): void { $item = new Item('foo', 0, 0); $gildedRoseItem = $this->factory->createGildedRoseItem($item); $this->assertInstanceOf(GildedRoseItem::class, $gildedRoseItem); $this->assertInstanceOf(DefaultItem::class, $gildedRoseItem); } public function testCreatingBrieItem(): void { $item = new Item('Aged Brie', 0, 0); $gildedRoseItem = $this->factory->createGildedRoseItem($item); $this->assertInstanceOf(GildedRoseItem::class, $gildedRoseItem); $this->assertInstanceOf(BrieItem::class, $gildedRoseItem); } public function testCreatingBackstagePassItem(): void { $item = new Item('Backstage passes to a TAFKAL80ETC concert', 0, 0); $gildedRoseItem = $this->factory->createGildedRoseItem($item); $this->assertInstanceOf(GildedRoseItem::class, $gildedRoseItem); $this->assertInstanceOf(BackstagePassItem::class, $gildedRoseItem); } public function testCreatingSulfuraItem(): void { $item = new Item('Sulfuras, Hand of Ragnaros', 0, 0); $gildedRoseItem = $this->factory->createGildedRoseItem($item); $this->assertInstanceOf(GildedRoseItem::class, $gildedRoseItem); $this->assertInstanceOf(SulfurasItem::class, $gildedRoseItem); } public function testCreatingConjuredItem(): void { $item = new Item('Conjured Mana Cake', 0, 0); $gildedRoseItem = $this->factory->createGildedRoseItem($item); $this->assertInstanceOf(GildedRoseItem::class, $gildedRoseItem); $this->assertInstanceOf(ConjuredItem::class, $gildedRoseItem); } }