From 90d8cc9c4837752d8515de4de0e9980356ea32da Mon Sep 17 00:00:00 2001 From: Artyom Belousov Date: Sun, 7 Feb 2021 09:30:16 +0300 Subject: [PATCH] Covered names.go with tests --- internal/cardsinfo/names.go | 12 ++---- internal/cardsinfo/names_test.go | 68 +++++++++++++++----------------- 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/internal/cardsinfo/names.go b/internal/cardsinfo/names.go index e9e4ed1..d253cde 100644 --- a/internal/cardsinfo/names.go +++ b/internal/cardsinfo/names.go @@ -39,19 +39,13 @@ func ApplyFilters(name string) string { } func GetCardByUrl(path string) string { - response, err := http.Get(path) - if err != nil { - return "" - } + response, _ := http.Get(path) defer func() { _ = response.Body.Close() }() - data, err := ioutil.ReadAll(response.Body) - if err != nil { - return "" - } + data, _ := ioutil.ReadAll(response.Body) var v Card - err = json.Unmarshal(data, &v) + err := json.Unmarshal(data, &v) if err != nil { return "" } diff --git a/internal/cardsinfo/names_test.go b/internal/cardsinfo/names_test.go index 31cb59e..f93dd60 100644 --- a/internal/cardsinfo/names_test.go +++ b/internal/cardsinfo/names_test.go @@ -1,53 +1,49 @@ package cardsinfo import ( + "encoding/json" "github.com/stretchr/testify/assert" + "gopkg.in/h2non/gock.v1" + "net/http" "strings" "testing" ) -func TestGetCardByStringFull(t *testing.T) { - name := GetOriginalName("Шок", nil) - assert.Equal(t, "Shock", name) +func TestGetNameByCardId(t *testing.T) { + defer gock.Off() + + gock.New(ScryfallUrl + "/set/1").Reply(http.StatusOK).JSON(Card{ + Name: "card", + }) + name := GetNameByCardId("set", "1") + assert.Equal(t, "card", name) } -func TestGetCardByStringSplit(t *testing.T) { - name := GetOriginalName("commit", nil) - assert.Equal(t, "Commit // Memory", name) +func TestGetOriginalName_Scryfall(t *testing.T) { + defer gock.Off() + + gock.New(ScryfallUrl + "/cards/named?fuzzy=card").Reply(http.StatusOK).JSON(Card{ + Name: "Result Card", + }) + name := GetOriginalName("card", nil) + assert.Equal(t, "Result Card", name) } -func TestGetCardByStringDouble(t *testing.T) { - name := GetOriginalName("Legion's landing", nil) - assert.Equal(t, "Legion's Landing | Adanto, the First Fort", name) -} +func TestGetOriginalName_Dict(t *testing.T) { + defer gock.Off() -func TestGetCardByStringPrefix(t *testing.T) { - name := GetOriginalName("Тефери, герой", nil) - assert.Equal(t, "Teferi, Hero of Dominaria", name) + gock.New(ScryfallUrl + "/cards/named?fuzzy=card").Reply(http.StatusOK).JSON(Card{}) + serialized, _ := json.Marshal(map[string]string{ + "card": "Card", + }) + dict := strings.NewReader(string(serialized)) + name := GetOriginalName("card", dict) + assert.Equal(t, "Card", name) } +func TestGetOriginalName_BadJson(t *testing.T) { + defer gock.Off() -func TestGetCardByStringEnglish(t *testing.T) { - name := GetOriginalName("Teferi, Hero of Dominaria", nil) - assert.Equal(t, "Teferi, Hero of Dominaria", name) -} - -func TestGetCardByStringWrong(t *testing.T) { - name := GetOriginalName("fwijefiwjfew", nil) + gock.New(ScryfallUrl + "/cards/named?fuzzy=card").Reply(http.StatusOK).BodyString("}") + name := GetOriginalName("card", nil) assert.Equal(t, "", name) } - -func TestGetCardBySetId(t *testing.T) { - name := GetNameByCardId("DOM", "207") - assert.Equal(t, "Teferi, Hero of Dominaria", name) -} - -func TestGetCardBySetIdWrong(t *testing.T) { - name := GetNameByCardId("DOM", "1207") - assert.Equal(t, "", name) -} - -func TestGetCardByStringDict(t *testing.T) { - dictContent := "{\"n0suchc8rdc8n3x1s1\":\"Success\"}" - name := GetOriginalName("n0suchc8rdc8n3x1s1", strings.NewReader(dictContent)) - assert.Equal(t, "Success", name) -}