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()
|
def update_quality()
|
||||||
@items.each do |item|
|
@items.each do |item|
|
||||||
if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert"
|
case item.name
|
||||||
if item.quality > 0
|
when "Aged Brie"
|
||||||
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"
|
|
||||||
item.sell_in = item.sell_in - 1
|
item.sell_in = item.sell_in - 1
|
||||||
end
|
item.quality = item.quality + 1 unless item.quality >= 50
|
||||||
if item.sell_in < 0
|
return
|
||||||
if item.name != "Aged Brie"
|
when "Backstage passes to a TAFKAL80ETC concert"
|
||||||
if item.name != "Backstage passes to a TAFKAL80ETC concert"
|
item.sell_in = item.sell_in - 1
|
||||||
if item.quality > 0
|
if item.sell_in < 0
|
||||||
if item.name != "Sulfuras, Hand of Ragnaros"
|
item.quality = 0
|
||||||
item.quality = item.quality - 1
|
elsif item.sell_in < 5
|
||||||
end
|
item.quality = item.quality + 3
|
||||||
end
|
elsif item.sell_in < 10
|
||||||
else
|
item.quality = item.quality + 2
|
||||||
item.quality = item.quality - item.quality
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
if item.quality < 50
|
item.quality = item.quality + 1
|
||||||
item.quality = item.quality + 1
|
|
||||||
end
|
|
||||||
end
|
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
|
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
|
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)]
|
items = [Item.new("Sulfuras, Hand of Ragnaros", 1, 49)]
|
||||||
item = items.first
|
|
||||||
GildedRose.new(items).update_quality()
|
GildedRose.new(items).update_quality()
|
||||||
expect(items[0].sell_in).to eq 1
|
expect(items[0].sell_in).to eq 1
|
||||||
expect(items[0].quality).to eq 49
|
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
|
end
|
||||||
|
|
||||||
it "'Backstage passes', like aged brie, increases in Quality as its SellIn value approaches" do
|
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
|
expect(items[0].sell_in).to eq -1
|
||||||
end
|
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
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user