GildedRose-Refactoring-Kata/go/gilded-rose_test.go
dreddick.home2@gmail.com afa3d43717 separate brie update
2020-11-05 16:31:48 +00:00

51 lines
1.4 KiB
Go

package main
import "testing"
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)
for i, item := range items {
actual := [2]int{item.sellIn, item.quality}
if actual != expected[i] {
t.Errorf("%s: Expected %+v but got %+v", item.name, expected[i], actual)
}
}
}