diff --git a/php/src/GildedRoseItem.php b/php/src/GildedRoseItem.php new file mode 100644 index 00000000..64e5df2b --- /dev/null +++ b/php/src/GildedRoseItem.php @@ -0,0 +1,10 @@ +name) { + case BrieItem::NAME: + return new BrieItem($item); + case BackstagePassItem::NAME: + return new BackstagePassItem($item); + case SulfurasItem::NAME: + return new SulfurasItem($item); + default: + return new DefaultItem($item); + } + } +} diff --git a/php/tests/behat/feature_files/default-quality-degradation copy 2.feature b/php/tests/behat/feature_files/default-quality-degradation.feature similarity index 100% rename from php/tests/behat/feature_files/default-quality-degradation copy 2.feature rename to php/tests/behat/feature_files/default-quality-degradation.feature diff --git a/php/tests/phpunit/ExampleTest.php b/php/tests/phpunit/ExampleTest.php deleted file mode 100644 index ea7b98a0..00000000 --- a/php/tests/phpunit/ExampleTest.php +++ /dev/null @@ -1,18 +0,0 @@ -assertTrue(true); - } -} diff --git a/php/tests/phpunit/GildedRoseItemFactoryTest.php b/php/tests/phpunit/GildedRoseItemFactoryTest.php new file mode 100644 index 00000000..66237fdb --- /dev/null +++ b/php/tests/phpunit/GildedRoseItemFactoryTest.php @@ -0,0 +1,61 @@ +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); + } +}