package trans_test import ( "testing" "." "reflect" "os" ) type testData struct { word string fromLang string toLang string transOutput string expectedResults []string } func TestTranslation(t *testing.T) { cases := []testData{ testData{ "actuator", "en", "hu", `működtető noun indítókar actuator, starting lever actuator működtető, beavatkozó, hajtómű, aktuátor, hajtás `, []string{"működtető", "indítókar", "beavatkozó", "hajtómű", "aktuátor", "hajtás"}, }, testData{ "szaxofon", "hu", "en", `saxophone szaxofon saxophone `, []string{"saxophone"}, }, testData{ "cat", "en", "hu", `macska noun macska cat, pussy pletykás nő cat verb felvon hoist, cat cat macska, cica `, []string{"macska", "pletykás nő", "felvon", "cica"}, }, testData{ "méltányosság", "hu", "en", `equity noun equity méltányosság, jogosság fairness méltányosság, szőkeség justness jogosság, méltányosság méltányosság equity, fairness `, []string{"equity", "fairness", "justness"}, }, } for _, data := range cases { tr := trans.New(data.word) tr.Language = data.fromLang if _, ok := os.LookupEnv("NOMOCK"); !ok { tr.Translator = func(string, string, string) (string, error) { return data.transOutput, nil } } r := tr.Translate(data.toLang) if (!reflect.DeepEqual(r, data.expectedResults)) { t.Errorf("\nExpected: '%v'\nActual: '%v'", data.expectedResults, r) } } }