From 20e93848e11d56662d0650134afb3053f8989055 Mon Sep 17 00:00:00 2001 From: Daniel F Date: Tue, 11 Jul 2023 22:11:49 +0100 Subject: [PATCH] Added ItemUpdateServiceProvider tests --- .../item_update_service_provider_test.go | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 go/services/item_update_service_provider_test.go diff --git a/go/services/item_update_service_provider_test.go b/go/services/item_update_service_provider_test.go new file mode 100644 index 00000000..5960e6b0 --- /dev/null +++ b/go/services/item_update_service_provider_test.go @@ -0,0 +1,53 @@ +package services + +import ( + "testing" + "github.com/stretchr/testify/assert" + + "github.com/emilybache/gildedrose-refactoring-kata/models" + "github.com/emilybache/gildedrose-refactoring-kata/domains" +) + +func TestItemUpdateServiceProvider_NormalItem(t *testing.T) { + runTestCase(t, func( + itemUpdateServiceProvider domains.ItemUpdateServiceProvider, + ) { + item := models.NewItem(&models.ItemModel{"Random normal item", 5, 5}) + updateServiceProvider := itemUpdateServiceProvider.GetUpdateService(item); + _, ok := updateServiceProvider.(NormalItemUpdateService) + assert.Equal(t, true, ok) + }) +} + +func TestItemUpdateServiceProvider_AgedBrieItem(t *testing.T) { + runTestCase(t, func( + itemUpdateServiceProvider domains.ItemUpdateServiceProvider, + ) { + item := models.NewItem(&models.ItemModel{"Aged Brie", 5, 5}) + updateServiceProvider := itemUpdateServiceProvider.GetUpdateService(item); + _, ok := updateServiceProvider.(AgedBrieItemUpdateService) + assert.Equal(t, true, ok) + }) +} + +func TestItemUpdateServiceProvider_BackstagePassItem(t *testing.T) { + runTestCase(t, func( + itemUpdateServiceProvider domains.ItemUpdateServiceProvider, + ) { + item := models.NewItem(&models.ItemModel{"Backstage passes to a TAFKAL80ETC concert", 5, 5}) + updateServiceProvider := itemUpdateServiceProvider.GetUpdateService(item); + _, ok := updateServiceProvider.(BackstagePassItemUpdateService) + assert.Equal(t, true, ok) + }) +} + +func TestItemUpdateServiceProvider_SulfurasItem(t *testing.T) { + runTestCase(t, func( + itemUpdateServiceProvider domains.ItemUpdateServiceProvider, + ) { + item := models.NewItem(&models.ItemModel{"Sulfuras, Hand of Ragnaros", 5, 5}) + updateServiceProvider := itemUpdateServiceProvider.GetUpdateService(item); + _, ok := updateServiceProvider.(SulfurasItemUpdateService) + assert.Equal(t, true, ok) + }) +}