mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
Added Conjured item
This commit is contained in:
parent
78080adc89
commit
329effa522
@ -6,48 +6,43 @@ class GildedRose
|
||||
|
||||
def update_quality()
|
||||
@items.each do |item|
|
||||
if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert"
|
||||
if item.quality > 0
|
||||
if item.name != "Sulfuras, Hand of Ragnaros"
|
||||
item.quality = item.quality - 1
|
||||
end
|
||||
end
|
||||
else
|
||||
if item.quality < 50
|
||||
item.quality = item.quality + 1
|
||||
if item.name == "Backstage passes to a TAFKAL80ETC concert"
|
||||
if item.sell_in < 11
|
||||
if item.quality < 50
|
||||
item.quality = item.quality + 1
|
||||
end
|
||||
end
|
||||
if item.sell_in < 6
|
||||
if item.quality < 50
|
||||
item.quality = item.quality + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if item.name != "Sulfuras, Hand of Ragnaros"
|
||||
case item.name
|
||||
when "Aged Brie"
|
||||
item.sell_in = item.sell_in - 1
|
||||
end
|
||||
if item.sell_in < 0
|
||||
if item.name != "Aged Brie"
|
||||
if item.name != "Backstage passes to a TAFKAL80ETC concert"
|
||||
if item.quality > 0
|
||||
if item.name != "Sulfuras, Hand of Ragnaros"
|
||||
item.quality = item.quality - 1
|
||||
end
|
||||
end
|
||||
else
|
||||
item.quality = item.quality - item.quality
|
||||
end
|
||||
item.quality = item.quality + 1 unless item.quality >= 50
|
||||
return
|
||||
when "Backstage passes to a TAFKAL80ETC concert"
|
||||
item.sell_in = item.sell_in - 1
|
||||
if item.sell_in < 0
|
||||
item.quality = 0
|
||||
elsif item.sell_in < 5
|
||||
item.quality = item.quality + 3
|
||||
elsif item.sell_in < 10
|
||||
item.quality = item.quality + 2
|
||||
else
|
||||
if item.quality < 50
|
||||
item.quality = item.quality + 1
|
||||
end
|
||||
item.quality = item.quality + 1
|
||||
end
|
||||
return
|
||||
when "Conjured item"
|
||||
item.sell_in = item.sell_in - 1
|
||||
if item.sell_in < 0
|
||||
item.quality = item.quality - 4
|
||||
else
|
||||
item.quality = item.quality - 2
|
||||
end
|
||||
item.quality = 0 if item.quality < 0
|
||||
return
|
||||
when "Sulfuras, Hand of Ragnaros"
|
||||
return
|
||||
else
|
||||
item.sell_in = item.sell_in - 1
|
||||
if item.sell_in < 0
|
||||
item.quality = item.quality - 2
|
||||
else
|
||||
item.quality = item.quality - 1
|
||||
end
|
||||
item.quality = 0 if item.quality < 0
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -45,10 +45,12 @@ describe GildedRose do
|
||||
|
||||
it "'Sulfuras', being a legendary item, never has to be sold or decreases in Quality" do
|
||||
items = [Item.new("Sulfuras, Hand of Ragnaros", 1, 49)]
|
||||
item = items.first
|
||||
GildedRose.new(items).update_quality()
|
||||
expect(items[0].sell_in).to eq 1
|
||||
expect(items[0].quality).to eq 49
|
||||
10.times { GildedRose.new(items).update_quality() }
|
||||
expect(items[0].sell_in).to eq 1
|
||||
expect(items[0].quality).to eq 49
|
||||
end
|
||||
|
||||
it "'Backstage passes', like aged brie, increases in Quality as its SellIn value approaches" do
|
||||
@ -84,6 +86,16 @@ describe GildedRose do
|
||||
expect(items[0].sell_in).to eq -1
|
||||
end
|
||||
|
||||
it "'Conjured' items degrade in Quality twice as fast as normal items" do
|
||||
items = [Item.new("Conjured item", 10, 10)]
|
||||
GildedRose.new(items).update_quality()
|
||||
expect(items[0].quality).to eq 8
|
||||
expect(items[0].sell_in).to eq 9
|
||||
4.times { GildedRose.new(items).update_quality() }
|
||||
expect(items[0].quality).to eq 0
|
||||
expect(items[0].sell_in).to eq 5
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user