mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
Iqbal Refactoring
This commit is contained in:
parent
3fe7774406
commit
e19a316b13
@ -13,10 +13,10 @@ class BaseItemUpdater:
|
||||
self.item.sell_in -= 1
|
||||
|
||||
def update_quality(self):
|
||||
if self.item.quality > 0:
|
||||
self.item.quality -= 1
|
||||
if self.item.sell_in < 0 and self.item.quality > 0:
|
||||
self.item.quality -= 1
|
||||
degrade = 1
|
||||
if self.item.sell_in < 0:
|
||||
degrade = 2
|
||||
self.item.quality = max(self.item.quality - degrade, 0)
|
||||
|
||||
|
||||
|
||||
@ -44,7 +44,19 @@ class BackstagePassUpdater(BaseItemUpdater):
|
||||
|
||||
class SulfurasUpdater(BaseItemUpdater):
|
||||
def update(self):
|
||||
pass
|
||||
print("Sulfuras has no change")
|
||||
def update_quality(self):
|
||||
print("Sulfuras has no change")
|
||||
# pass
|
||||
def update_sell_in(self):
|
||||
print("Sulfuras has no change")
|
||||
|
||||
class ConjuredItemUpdater(BaseItemUpdater):
|
||||
def update_quality(self):
|
||||
degrade = 2
|
||||
if self.item.sell_in < 0:
|
||||
degrade *= 2
|
||||
self.item.quality = max(self.item.quality - degrade, 0)
|
||||
|
||||
|
||||
class ItemUpdaterFactory:
|
||||
@ -52,10 +64,12 @@ class ItemUpdaterFactory:
|
||||
def get_updater(item):
|
||||
if item.name == "Aged Brie":
|
||||
return AgedBrieUpdater(item)
|
||||
elif item.name == "Backstage passes":
|
||||
elif item.name == "Backstage passes to a TAFKAL80ETC concert":
|
||||
return BackstagePassUpdater(item)
|
||||
elif item.name == "Sulfuras":
|
||||
elif item.name == "Sulfuras, Hand of Ragnaros":
|
||||
return SulfurasUpdater(item)
|
||||
elif item.name == "Conjured Mana Cake":
|
||||
return ConjuredItemUpdater(item)
|
||||
else:
|
||||
return BaseItemUpdater(item)
|
||||
|
||||
|
||||
@ -1,16 +1,51 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import unittest
|
||||
# import unittest
|
||||
|
||||
from gilded_rose import Item, GildedRose
|
||||
# from gilded_rose import Item, GildedRose
|
||||
|
||||
|
||||
class GildedRoseTest(unittest.TestCase):
|
||||
def test_foo(self):
|
||||
items = [Item("foo", 0, 0)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
self.assertEqual("foo", items[0].name)
|
||||
# class GildedRoseTest(unittest.TestCase):
|
||||
# def test_foo(self):
|
||||
# items = [Item("foo", 0, 0)]
|
||||
# gilded_rose = GildedRose(items)
|
||||
# gilded_rose.update_quality()
|
||||
# self.assertEqual("foo", items[0].name)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
# if __name__ == '__main__':
|
||||
# unittest.main()
|
||||
|
||||
import pytest
|
||||
from gilded_rose import GildedRose
|
||||
from items import Item
|
||||
|
||||
|
||||
def test_regular_item_degrades():
|
||||
items = [Item("foo", 10, 20)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
assert items[0].quality == 19
|
||||
assert items[0].sell_in == 9
|
||||
|
||||
|
||||
def test_aged_brie_increases():
|
||||
items = [Item("Aged Brie", 2, 0)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
assert items[0].quality == 1
|
||||
assert items[0].sell_in == 1
|
||||
|
||||
|
||||
def test_backstage_passes_increase():
|
||||
items = [Item("Backstage passes", 11, 10)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
assert items[0].quality == 11
|
||||
|
||||
|
||||
def test_sulfuras_no_change():
|
||||
items = [Item("Sulfuras", 0, 80)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
assert items[0].quality == 80
|
||||
assert items[0].sell_in == 0
|
||||
|
||||
@ -17,7 +17,7 @@ if __name__ == "__main__":
|
||||
Item(name="Conjured Mana Cake", sell_in=3, quality=6), # <-- :O
|
||||
]
|
||||
|
||||
days = 2
|
||||
days = 4
|
||||
import sys
|
||||
if len(sys.argv) > 1:
|
||||
days = int(sys.argv[1]) + 1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user