Covered names.go with tests

This commit is contained in:
Artyom Belousov 2021-02-07 09:30:16 +03:00
parent c8efc24ef5
commit 90d8cc9c48
2 changed files with 35 additions and 45 deletions

View file

@ -39,19 +39,13 @@ func ApplyFilters(name string) string {
} }
func GetCardByUrl(path string) string { func GetCardByUrl(path string) string {
response, err := http.Get(path) response, _ := http.Get(path)
if err != nil {
return ""
}
defer func() { defer func() {
_ = response.Body.Close() _ = response.Body.Close()
}() }()
data, err := ioutil.ReadAll(response.Body) data, _ := ioutil.ReadAll(response.Body)
if err != nil {
return ""
}
var v Card var v Card
err = json.Unmarshal(data, &v) err := json.Unmarshal(data, &v)
if err != nil { if err != nil {
return "" return ""
} }

View file

@ -1,53 +1,49 @@
package cardsinfo package cardsinfo
import ( import (
"encoding/json"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/h2non/gock.v1"
"net/http"
"strings" "strings"
"testing" "testing"
) )
func TestGetCardByStringFull(t *testing.T) { func TestGetNameByCardId(t *testing.T) {
name := GetOriginalName("Шок", nil) defer gock.Off()
assert.Equal(t, "Shock", name)
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) { func TestGetOriginalName_Scryfall(t *testing.T) {
name := GetOriginalName("commit", nil) defer gock.Off()
assert.Equal(t, "Commit // Memory", name)
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) { func TestGetOriginalName_Dict(t *testing.T) {
name := GetOriginalName("Legion's landing", nil) defer gock.Off()
assert.Equal(t, "Legion's Landing | Adanto, the First Fort", name)
}
func TestGetCardByStringPrefix(t *testing.T) { gock.New(ScryfallUrl + "/cards/named?fuzzy=card").Reply(http.StatusOK).JSON(Card{})
name := GetOriginalName("Тефери, герой", nil) serialized, _ := json.Marshal(map[string]string{
assert.Equal(t, "Teferi, Hero of Dominaria", name) "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) { gock.New(ScryfallUrl + "/cards/named?fuzzy=card").Reply(http.StatusOK).BodyString("}")
name := GetOriginalName("Teferi, Hero of Dominaria", nil) name := GetOriginalName("card", nil)
assert.Equal(t, "Teferi, Hero of Dominaria", name)
}
func TestGetCardByStringWrong(t *testing.T) {
name := GetOriginalName("fwijefiwjfew", nil)
assert.Equal(t, "", name) 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)
}