UnitTest coverage

This commit is contained in:
Ashwin Rana 2023-09-27 16:18:25 +00:00
parent 50e4577099
commit 6be8a090fb
7 changed files with 105 additions and 16 deletions

View File

@ -0,0 +1 @@
../GildedRoseRequirements.txt

View File

@ -1,16 +0,0 @@
# -*- coding: utf-8 -*-
import unittest
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.assertEquals("fixme", items[0].name)
if __name__ == '__main__':
unittest.main()

0
python/tests/__init__.py Normal file
View File

View File

@ -0,0 +1,9 @@
from gilded_rose import Item, GildedRose
AGED_BRIE = "Aged Brie"
# "Aged Brie" actually increases in Quality the older it get
def test_aged_brie_increases_quality_older():
items = [Item(AGED_BRIE, 0, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 2

View File

@ -0,0 +1,37 @@
from gilded_rose import Item, GildedRose
'''
"Backstage passes", like aged brie, increases in Quality as its SellIn value approaches;
Quality increases by 2 when there are 10 days or less and by 3 when there are 5 days or less but
Quality drops to 0 after the concert
'''
BACKSTAGE_PASSES = "Backstage passes to a TAFKAL80ETC concert"
# Backstage passes, increases in Quality as its SellIn value approaches
def test_backstage_passes_increase_quality():
items = [Item(BACKSTAGE_PASSES, 11, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 1
# Quality increases by 2 when there are 10 days or less
def test_backstage_passes_increase_quality_by_2():
items = [Item(BACKSTAGE_PASSES, 10, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 2
# Quality increases by 3 when there are 5 days or less
def test_backstage_passes_increase_quality_by_3():
items = [Item(BACKSTAGE_PASSES, 5, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 3
# Quality drops to 0 after the concert
def test_backstage_passes_quality_is_0_sell_in_is_0():
items = [Item(BACKSTAGE_PASSES, 0, 10)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 0

42
python/tests/test_main.py Normal file
View File

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
from gilded_rose import Item, GildedRose
def test_foo():
items = [Item("foo", 0, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].name == "foo"
# At the end of each day our system lowers both values for every item
def test_item_sell_in_decreases():
items = [Item("foo", 1, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].sell_in == 0
def test_item_quality_decreases():
items = [Item("foo", 0, 1)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 0
# Once the sell by date has passed, Quality degrades twice as fast
def test_item_sell_in_passed_quality_degrades_twice():
items = [Item("foo", 0, 2)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 0
# The Quality of an item is never negative
def test_item_quality_is_never_negative():
items = [Item("foo", 0, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 0
# The Quality of an item is never more than 50
def test_item_quality_is_never_more_than_50():
items = [Item("Aged Brie", 0, 50)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 50

View File

@ -0,0 +1,16 @@
from gilded_rose import Item, GildedRose
SULFURAS = "Sulfuras, Hand of Ragnaros"
# "Sulfuras", being a legendary item, never has to be sold or decreases in Quality
def test_sulfuras_sell_in_does_not_decrease():
items = [Item(SULFURAS, 0, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].sell_in == 0
def test_sulfuras_does_not_decrease_in_quality():
items = [Item(SULFURAS, 0, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
assert items[0].quality == 0