From 4ad2a537ca402a9313a44f23353c161fe917f1e3 Mon Sep 17 00:00:00 2001 From: saulius12 Date: Thu, 13 Jun 2019 15:16:20 +0300 Subject: [PATCH] add tests --- .gitignore | 2 + php7/test/GildedRoseTest.php | 195 ++++++++++++++++++++++++++++++++++- 2 files changed, 192 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 1ff57af1..6b003438 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ obj *.sln.DotSettings.user .vs vendor +php7/.phpunit.result.cache +../idea/* \ No newline at end of file diff --git a/php7/test/GildedRoseTest.php b/php7/test/GildedRoseTest.php index 6f2ecf70..52367c20 100644 --- a/php7/test/GildedRoseTest.php +++ b/php7/test/GildedRoseTest.php @@ -2,11 +2,196 @@ namespace App; -class GildedRoseTest extends \PHPUnit\Framework\TestCase { - public function testFoo() { - $items = [new Item("foo", 0, 0)]; +class GildedRoseTest extends \PHPUnit\Framework\TestCase +{ + + public function test_random_item_than_quality_maximum() + { + $items = [new Item("Random item", 1, 50)]; $gildedRose = new GildedRose($items); $gildedRose->updateQuality(); - $this->assertEquals("fixme", $items[0]->name); + $this->assertEquals($items[0]->quality, 49); + $this->assertEquals($items[0]->sell_in, 0); } -} + + public function test_random_item_than_sell_in_is_0_or_lower() + { + $items = [new Item("Random item", 0, 3)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 1); + $this->assertEquals($items[0]->sell_in, -1); + } + + public function test_random_item_than_sell_in_greater_then_0() + { + $items = [new Item("Random item", 1, 3)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 2); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_backstage_than_quality_maximum_sell_in_lower_then_zero() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", -5, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 0); + $this->assertEquals($items[0]->sell_in, -6); + } + + public function test_backstage_than_quality_maximum_sell_in_beetween_one_and_five() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 1, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_backstage_than_quality_maximum_sell_in_beetween_five_and_ten() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 7, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 6); + } + + public function test_backstage_than_quality_maximum_sell_in_greater_then_ten() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 11, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 10); + } + + public function test_backstage_than_sell_in_greater_then_ten() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 11, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 2); + $this->assertEquals($items[0]->sell_in, 10); + } + + public function test_backstage_than_sell_in_beetween_five_and_ten() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 7, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 3); + $this->assertEquals($items[0]->sell_in, 6); + } + + public function test_backstage_than_beetween_one_and_five() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 5, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 4); + $this->assertEquals($items[0]->sell_in, 4); + } + + public function test_backstage_than_sell_in_is_zero() + { + $items = [new Item("Backstage passes to a TAFKAL80ETC concert", 0, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 0); + $this->assertEquals($items[0]->sell_in, -1); + } + + public function test_sulfuras_than_sell_in_greater_then_zero() + { + $items = [new Item("Sulfuras, Hand of Ragnaros", 1, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 80); + $this->assertEquals($items[0]->sell_in, 1); + } + + public function test_sulfuras_than_sell_in_zero() + { + $items = [new Item("Sulfuras, Hand of Ragnaros", 0, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 80); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_sulfuras_than_sell_in_lower_then_zero() + { + $items = [new Item("Sulfuras, Hand of Ragnaros", -1, 10)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 80); + $this->assertEquals($items[0]->sell_in, -1); + } + + public function test_aged_brie_than_sell_in_greater_then_zero() + { + $items = [new Item("Aged Brie", 1, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 2); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_aged_brie_than_sell_in_lower_then_zero() + { + $items = [new Item("Aged Brie", -1, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 3); + $this->assertEquals($items[0]->sell_in, -2); + } + + public function test_aged_brie_than_sell_id_is_zero() + { + $items = [new Item("Aged Brie", 0, 1)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 3); + $this->assertEquals($items[0]->sell_in, -1); + } + + public function test_aged_brie_than_quality_is_maximum() + { + $items = [new Item("Aged Brie", 1, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_aged_brie_than_quality_maximum_and_sell_in_lower_then_zero() + { + $items = [new Item("Aged Brie", -1, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, -2); + } + + public function test_aged_brie_than_quality_maximum_and_sell_in_greater_then_zero() + { + $items = [new Item("Aged Brie", 1, 50)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 0); + } + + public function test_aged_brie_than_quality_one_of_maximum() + { + $items = [new Item("Aged Brie", 10, 49)]; + $gildedRose = new GildedRose($items); + $gildedRose->updateQuality(); + $this->assertEquals($items[0]->quality, 50); + $this->assertEquals($items[0]->sell_in, 9); + } + +} \ No newline at end of file