diff --git a/go/gilded-rose_test.go b/go/gilded-rose_test.go index 24d64bdd..b23126a8 100644 --- a/go/gilded-rose_test.go +++ b/go/gilded-rose_test.go @@ -2,14 +2,49 @@ package main import "testing" -func Test_Foo(t *testing.T) { - var items = []*Item{ - &Item{"foo", 0, 0}, +type Expected [2]int + +type ItemTest struct { + *Item + Expected +} + +func GetItemTestsComponents(itemTests []ItemTest) ([]*Item, []Expected) { + var items []*Item + var expected []Expected + + for _, itemTest := range itemTests { + items = append(items, itemTest.Item) + expected = append(expected, itemTest.Expected) } + return items, expected +} + +func Test_Items(t *testing.T) { + var itemTests = []ItemTest{ + {&Item{"Aged Brie", 0, 0}, Expected{-1, 2}}, + {&Item{"Aged Brie", 5, 50}, Expected{4, 50}}, + {&Item{"Backstage passes to a TAFKAL80ETC concert", 5, 49}, Expected{4, 50}}, + {&Item{"Backstage passes to a TAFKAL80ETC concert", 0, 49}, Expected{-1, 0}}, + {&Item{"Backstage passes to a TAFKAL80ETC concert", 4, 4}, Expected{3, 7}}, + {&Item{"Backstage passes to a TAFKAL80ETC concert", 9, 4}, Expected{8, 6}}, + {&Item{"Sulfuras, Hand of Ragnaros", 0, 80}, Expected{0, 80}}, + {&Item{"Conjured Mana Cake", 3, 6}, Expected{2, 5}}, + {&Item{"Acme Dynamite", 3, 6}, Expected{2, 5}}, + {&Item{"Acme Dynamite", 0, 6}, Expected{-1, 4}}, + {&Item{"Acme Dynamite", 0, 0}, Expected{-1, 0}}, + } + + items, expected := GetItemTestsComponents(itemTests) + UpdateQuality(items) - if items[0].name != "fixme" { - t.Errorf("Name: Expected %s but got %s ", "fixme", items[0].name) + for i, item := range items { + actual := [2]int{item.sellIn, item.quality} + if actual != expected[i] { + t.Errorf("Expected %+v but got %+v", expected[i], actual) + } } + }