diff --git a/ruby/gilded_rose_spec.rb b/ruby/gilded_rose_spec.rb index 0e0ff881..dea07a71 100644 --- a/ruby/gilded_rose_spec.rb +++ b/ruby/gilded_rose_spec.rb @@ -52,17 +52,38 @@ describe GildedRose do end context 'para items Aged Brie' do - it 'incrementa su calidad' + before do + @items = [Item.new("Aged Brie", 10, 2)] + @gilded = GildedRose.new(@items) + end - it 'incrementa su calidad en 2 cuando ya no quedan dias de venta' + it 'incrementa su calidad' do + @gilded.update_quality - it 'no incrementa su calidad por sobre 50' + expect(@items[0].quality).to eq 3 + end + + it 'incrementa su calidad en 2 cuando ya no quedan dias de venta' do + @items[0].sell_in = 0 + + @gilded.update_quality + + expect(@items[0].quality).to eq 4 + end + + it 'no incrementa su calidad por sobre 50' do + @items[0].quality = 50 + + @gilded.update_quality + + expect(@items[0].quality).to eq 50 + end end context 'para items Sulfuras' do before do ## Arrange - @items = [Item.new("Sulfuras, Hand of Ragnaros", 10, 2)] + @items = [Item.new("Sulfuras, Hand of Ragnaros", 10, 80)] @gilded = GildedRose.new(@items) end @@ -82,12 +103,22 @@ describe GildedRose do end context 'para items Backstage Pass' do - it 'incrementa su calidad si quedan más de 10 días para venderlo' - - it 'incrementa su calidad en 2 si quedan 10 dias o menos para venderlo' do + before do # arrange @items = [Item.new("Backstage passes to a TAFKAL80ETC concert", 10, 2)] @gilded = GildedRose.new(@items) + end + + it 'incrementa su calidad si quedan más de 10 días para venderlo' do + @items[0].sell_in = 11 + + @gilded.update_quality + + expect(@items[0].quality).to eq 3 + end + + it 'incrementa su calidad en 2 si quedan 10 dias o menos para venderlo' do + @items[0].sell_in = 10 # act @gilded.update_quality() @@ -96,12 +127,33 @@ describe GildedRose do expect(@items[0].quality).to eq 4 end - it 'incrementa su calidad en 3 si quedan 5 dias o menos para venderlo' + it 'incrementa su calidad en 3 si quedan 5 dias o menos para venderlo' do + @items[0].sell_in = 5 - it 'decrementa su calidad a 0 si ya no quedan dias para venderlo' + @gilded.update_quality + + expect(@items[0].quality).to eq 5 + end + + it 'decrementa su calidad a 0 si ya no quedan dias para venderlo' do + @items[0].sell_in = 0 + + @gilded.update_quality + + expect(@items[0].quality).to eq 0 + end end context 'para items conjurados' do - it 'decrementa su calidad en 2' + before do + @items = [Item.new('Conjured item', 10, 4)] + @gilded = GildedRose.new(@items) + end + + it 'decrementa su calidad en 2' do + @gilded.update_quality + + expect(@items[0].quality).to eq 2 + end end end