mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 16:01:42 +00:00
Extract Backstage Passes
This commit is contained in:
parent
3d86d3d0ef
commit
14363a173b
@ -9,6 +9,8 @@ class GildedRose
|
|||||||
case item.name
|
case item.name
|
||||||
when 'Aged Brie'
|
when 'Aged Brie'
|
||||||
update_aged_brie_quality(item)
|
update_aged_brie_quality(item)
|
||||||
|
when 'Backstage passes to a TAFKAL80ETC concert'
|
||||||
|
update_backstage_passes_quality(item)
|
||||||
when 'Sulfuras, Hand of Ragnaros'
|
when 'Sulfuras, Hand of Ragnaros'
|
||||||
update_sulfuras_quality(item)
|
update_sulfuras_quality(item)
|
||||||
else
|
else
|
||||||
@ -61,6 +63,16 @@ class GildedRose
|
|||||||
item.quality = 50 if item.quality > 50
|
item.quality = 50 if item.quality > 50
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_backstage_passes_quality(item)
|
||||||
|
item.sell_in -= 1
|
||||||
|
return item.quality = 0 if item.sell_in.negative?
|
||||||
|
|
||||||
|
item.quality += 1
|
||||||
|
item.quality += 1 if item.sell_in < 10
|
||||||
|
item.quality += 1 if item.sell_in < 5
|
||||||
|
item.quality = 50 if item.quality > 50
|
||||||
|
end
|
||||||
|
|
||||||
def update_sulfuras_quality(item); end
|
def update_sulfuras_quality(item); end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -188,7 +188,7 @@ describe GildedRose do
|
|||||||
context 'when 1 day left' do
|
context 'when 1 day left' do
|
||||||
let(:sell_in) { 1 }
|
let(:sell_in) { 1 }
|
||||||
|
|
||||||
it 'increases quality by 1' do
|
it 'increases quality by 3' do
|
||||||
subject.update_quality
|
subject.update_quality
|
||||||
expect(items[0].quality).to eq 6
|
expect(items[0].quality).to eq 6
|
||||||
end
|
end
|
||||||
@ -202,7 +202,7 @@ describe GildedRose do
|
|||||||
context 'when sell by date has passed' do
|
context 'when sell by date has passed' do
|
||||||
let(:sell_in) { 0 }
|
let(:sell_in) { 0 }
|
||||||
|
|
||||||
it 'increases quality by 2' do
|
it 'sets the quality to 0' do
|
||||||
subject.update_quality
|
subject.update_quality
|
||||||
expect(items[0].quality).to eq 0
|
expect(items[0].quality).to eq 0
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user