mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 15:01:28 +00:00
60 lines
3.3 KiB
Markdown
60 lines
3.3 KiB
Markdown
# Gilded Rose Kata in Java
|
|
|
|
Forked Java version of the Gilded-Rose-Refactoring-Kate project, original can be found
|
|
[here](https://github.com/emilybache/GildedRose-Refactoring-Kata).
|
|
|
|
# Requirements
|
|
|
|
## Gilded Rose Requirements Specification
|
|
|
|
Hi and welcome to team Gilded Rose. As you know, we are a small inn with a prime location in a prominent city ran by a
|
|
friendly innkeeper named Allison. We also buy and sell only the finest goods. Unfortunately, our goods are constantly
|
|
degrading in quality as they approach their sell by date. We have a system in place that updates our inventory for us.
|
|
It was developed by a no-nonsense type named Leeroy, who has moved on to new adventures. Your task is to add the new
|
|
feature to our system so that we can begin selling a new category of items. First an introduction to our system:
|
|
|
|
- All items have a SellIn value which denotes the number of days we have to sell the item
|
|
- All items have a Quality value which denotes how valuable the item is
|
|
- At the end of each day our system lowers both values for every item
|
|
|
|
Pretty simple, right? Well this is where it gets interesting:
|
|
|
|
- Once the sell by date has passed, Quality degrades twice as fast
|
|
- The Quality of an item is never negative
|
|
- "Aged Brie" actually increases in Quality the older it gets
|
|
- The Quality of an item is never more than 50
|
|
- "Sulfuras", being a legendary item, never has to be sold or decreases in Quality
|
|
- "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
|
|
|
|
We have recently signed a supplier of conjured items. This requires an update to our system:
|
|
|
|
- "Conjured" items degrade in Quality twice as fast as normal items
|
|
|
|
Feel free to make any changes to the UpdateQuality method and add any new code as long as everything still works
|
|
correctly. However, do not alter the Item class or Items property as those belong to the goblin in the corner who will
|
|
insta-rage and one-shot you as he doesn't believe in shared code ownership (you can make the UpdateQuality method and
|
|
Items property static if you like, we'll cover for you).
|
|
|
|
Just for clarification, an item can never have its Quality increase above 50, however "Sulfuras" is a legendary item and
|
|
as such its Quality is 80 and it never alters.
|
|
|
|
# Notes
|
|
|
|
## Item rules
|
|
|
|
* Quality increases or decreases when sell-in days pass or is constant.
|
|
* Quality of an item cannot be negative value.
|
|
* If item is Legendary, it's quality is always 80 and never changes.
|
|
|
|
## Types of items
|
|
|
|
| Item name | Quality changes, when day passes | Description |
|
|
|:----------|:---------------------------------|:------------- |
|
|
| Normal | **Quality decreases by 1;** <br> **Quality decreases by 2**, when sell-in date approaches | - |
|
|
| Aged Brie | **Quality increases by 1;** <br> **Quality increases by 2**, when sell-in date approaches | - |
|
|
| Conjured | <b>Quality decreases by 1;</b> <br> <b>Quality decreases by 4</b> when sell-in date approaches | - |
|
|
| Backstage Pass | <b>Quality increases by 1;</b><br> <b>Quality increases by 2</b> when there are 10 days or less;<br> <b>Quality increases by 3 </b> when there are 5 days or less;<br> <b>Quality drops to 0</b> after the concert. | - |
|
|
| Sulfura | **Always 80**. Never changes| Legendary item. Constant quality value. |
|