mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
Initial port.
This commit is contained in:
parent
1406987c44
commit
a91a6ef695
65
io/io/GildedRose.io
Normal file
65
io/io/GildedRose.io
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
GildedRose := Object clone do(
|
||||||
|
|
||||||
|
init := method(
|
||||||
|
self items := list()
|
||||||
|
)
|
||||||
|
|
||||||
|
with := method(items,
|
||||||
|
result := self clone
|
||||||
|
result items = items
|
||||||
|
result
|
||||||
|
)
|
||||||
|
|
||||||
|
updateQuality := method(
|
||||||
|
for(i, 0, items size - 1,
|
||||||
|
if (items at(i) name != "Aged Brie" and
|
||||||
|
items at(i) name != "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) quality > 0,
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) quality = items at(i) quality - 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
|
||||||
|
if (items at(i) name == "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) sellIn < 11,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) sellIn < 6,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) sellIn = items at(i) sellIn - 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) sellIn < 0,
|
||||||
|
if (items at(i) name != "Aged Brie",
|
||||||
|
if (items at(i) name != "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) quality > 0,
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) quality = items at(i) quality - 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,
|
||||||
|
items at(i) quality = items at(i) quality - items at(i) quality
|
||||||
|
)
|
||||||
|
,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
19
io/io/Item.io
Normal file
19
io/io/Item.io
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Item := Object clone do(
|
||||||
|
|
||||||
|
name := ""
|
||||||
|
sellIn := 0
|
||||||
|
quality := 0
|
||||||
|
|
||||||
|
with := method(name, sellIn, quality,
|
||||||
|
result := self clone
|
||||||
|
result name = name
|
||||||
|
result sellIn = sellIn
|
||||||
|
result quality = quality
|
||||||
|
result
|
||||||
|
)
|
||||||
|
|
||||||
|
asString = method(
|
||||||
|
self name .. ", " .. self sellIn .. ", " .. self quality
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
13
io/tests/correctness/GildedRoseTest.io
Normal file
13
io/tests/correctness/GildedRoseTest.io
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
doRelativeFile("../../io/Item.io")
|
||||||
|
doRelativeFile("../../io/GildedRose.io")
|
||||||
|
|
||||||
|
GildedRoseTest := UnitTest clone do(
|
||||||
|
|
||||||
|
testFoo := method(
|
||||||
|
items := list( Item with("foo", 0, 0) )
|
||||||
|
app := GildedRose with(items)
|
||||||
|
app updateQuality
|
||||||
|
assertEquals("fixme", app items at(0) name)
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
Loading…
Reference in New Issue
Block a user