mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-13 21:52:19 +00:00
Merge pull request #1 from zoengsw/tests-except-conjured
Tests except conjured
This commit is contained in:
commit
8a9b6977f0
0
python/__init__.py
Normal file
0
python/__init__.py
Normal file
0
python/gilded_rose.py → python/tests/gilded_rose.py
Executable file → Normal file
0
python/gilded_rose.py → python/tests/gilded_rose.py
Executable file → Normal file
@ -1,16 +1,117 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import unittest
|
||||
from hashlib import file_digest
|
||||
|
||||
from gilded_rose import Item, GildedRose
|
||||
|
||||
BACKSTAGE = 'Backstage passes to a TAFKAL80ETC concert'
|
||||
SULFURAS = 'Sulfuras, Hand of Ragnaros'
|
||||
AGED_BRIE = 'Aged Brie'
|
||||
|
||||
class GildedRoseTest(unittest.TestCase):
|
||||
def test_foo(self):
|
||||
items = [Item("foo", 0, 0)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
self.assertEqual("fixme", items[0].name)
|
||||
|
||||
|
||||
def check_item_values(self, item, name, sell_in, quality):
|
||||
self.assertEqual(item.name, name)
|
||||
self.assertEqual(item.sell_in, sell_in)
|
||||
self.assertEqual(item.quality, quality)
|
||||
|
||||
def update_gilded_rose_days(self, gilded_rose, days):
|
||||
for day in range(days):
|
||||
gilded_rose.update_quality()
|
||||
|
||||
def generate_and_update_gilded_rose(self, items, days):
|
||||
gilded_rose = GildedRose(items)
|
||||
self.update_gilded_rose_days(gilded_rose, days)
|
||||
return gilded_rose
|
||||
|
||||
def test_foo_1day(self):
|
||||
items= [Item('foo', 1, 1)]
|
||||
self.generate_and_update_gilded_rose(items, 1)
|
||||
self.check_item_values(items[0], 'foo', 0, 0)
|
||||
|
||||
def test_foo_multiple_days(self):
|
||||
items= [Item('foo', 2, 3)]
|
||||
self.generate_and_update_gilded_rose(items, 2)
|
||||
self.check_item_values(items[0], 'foo', 0, 1)
|
||||
|
||||
def test_quality_nonnegative(self):
|
||||
items = [Item("foo", 2, 0)]
|
||||
self.generate_and_update_gilded_rose(items, 1)
|
||||
self.check_item_values(items[0], "foo", 1, 0)
|
||||
|
||||
def test_after_sellby_date(self):
|
||||
items = [Item("foo", 2, 10)]
|
||||
gilded_rose = self.generate_and_update_gilded_rose(items, 2)
|
||||
self.check_item_values(items[0], "foo", 0, 8)
|
||||
self.update_gilded_rose_days(gilded_rose, 2)
|
||||
self.check_item_values(items[0], "foo", -2, 4)
|
||||
|
||||
def test_aged_brie_4_days(self):
|
||||
items = [Item(AGED_BRIE, 2, 10)]
|
||||
gilded_rose = self.generate_and_update_gilded_rose(items, 2)
|
||||
self.check_item_values(items[0], AGED_BRIE, 0, 12)
|
||||
self.update_gilded_rose_days(gilded_rose, 2)
|
||||
self.check_item_values(items[0], AGED_BRIE, -2, 16)
|
||||
|
||||
def test_aged_brie_max_quality(self):
|
||||
items = [Item(AGED_BRIE, 15, 40)]
|
||||
gilded_rose = self.generate_and_update_gilded_rose(items, 10)
|
||||
self.check_item_values(items[0], AGED_BRIE, 5, 50)
|
||||
self.update_gilded_rose_days(gilded_rose, 6)
|
||||
self.check_item_values(items[0], AGED_BRIE, -1, 50)
|
||||
|
||||
def test_sulfuras(self):
|
||||
items = [Item(SULFURAS, 10, 30)]
|
||||
self.generate_and_update_gilded_rose(items, 50)
|
||||
self.check_item_values(items[0], SULFURAS, 10, 30)
|
||||
|
||||
def test_backstage_passes_15_to_10_days(self):
|
||||
items = [Item(BACKSTAGE, 15, 0)]
|
||||
self.generate_and_update_gilded_rose(items, 5)
|
||||
self.check_item_values(items[0], BACKSTAGE, 10, 5)
|
||||
|
||||
def test_backstage_passes_10_to_5_days(self):
|
||||
items = [Item(BACKSTAGE, 10, 0)]
|
||||
self.generate_and_update_gilded_rose(items, 5)
|
||||
self.check_item_values(items[0], BACKSTAGE, 5, 10)
|
||||
|
||||
def test_backstage_passes_5_to_0_days(self):
|
||||
items = [Item(BACKSTAGE, 5, 0)]
|
||||
self.generate_and_update_gilded_rose(items, 5)
|
||||
self.check_item_values(items[0], BACKSTAGE, 0, 15)
|
||||
|
||||
def test_backstage_passes_after_concert(self):
|
||||
items = [Item(BACKSTAGE, 1, 10)]
|
||||
gilded_rose = self.generate_and_update_gilded_rose(items, 1)
|
||||
self.check_item_values(items[0], BACKSTAGE, 0, 13)
|
||||
self.update_gilded_rose_days(gilded_rose, 1)
|
||||
self.check_item_values(items[0], BACKSTAGE, -1, 0)
|
||||
|
||||
def test_multiple_items_different_sellin_1day(self):
|
||||
items = [Item("foo", 0, 0), Item("bar", 1, 1), Item("baz", 2, 2)]
|
||||
self.generate_and_update_gilded_rose(items, 1)
|
||||
self.check_item_values(items[0], "foo", -1, 0)
|
||||
self.check_item_values(items[1], "bar", 0, 0)
|
||||
self.check_item_values(items[2], "baz", 1, 1)
|
||||
|
||||
def test_all_items_15_days(self):
|
||||
items = [Item("foo", 10, 10), Item(SULFURAS, 10, 10), Item(BACKSTAGE, 10, 10), Item(AGED_BRIE, 10, 10)]
|
||||
gilded_rose = self.generate_and_update_gilded_rose(items, 5)
|
||||
self.check_item_values(items[0], "foo", 5, 5)
|
||||
self.check_item_values(items[1], SULFURAS, 10, 10)
|
||||
self.check_item_values(items[2], BACKSTAGE, 5, 20)
|
||||
self.check_item_values(items[3], AGED_BRIE, 5, 15)
|
||||
self.update_gilded_rose_days(gilded_rose, 5)
|
||||
self.check_item_values(items[0], "foo", 0, 0)
|
||||
self.check_item_values(items[1], SULFURAS, 10, 10)
|
||||
self.check_item_values(items[2], BACKSTAGE, 0, 35)
|
||||
self.check_item_values(items[3], AGED_BRIE, 0, 20)
|
||||
self.update_gilded_rose_days(gilded_rose, 5)
|
||||
self.check_item_values(items[0], "foo", -5, 0)
|
||||
self.check_item_values(items[1], SULFURAS, 10, 10)
|
||||
self.check_item_values(items[2], BACKSTAGE, -5, 0)
|
||||
self.check_item_values(items[3], AGED_BRIE, -5, 30)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import print_function
|
||||
|
||||
from gilded_rose import *
|
||||
from python.tests.gilded_rose import *
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user