package trans_test import ( "testing" "." "reflect" "os" ) type testData struct { job []string transOutput string expectedResults []string } func TestTranslation(t *testing.T) { cases := []testData{ testData{ []string{"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{ []string{"szaxofon", "hu", "en"}, `saxophone szaxofon saxophone `, []string{"saxophone"}, }, testData{ []string{"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{ []string{"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 { j := trans.New(data.job[0], data.job[1], data.job[2]) if _, ok := os.LookupEnv("NOMOCK"); !ok { j.Translator = func(t *trans.Translation) (string, error) { return data.transOutput, nil } } r := j.Translate() if (!reflect.DeepEqual(r, data.expectedResults)) { t.Errorf("\nExpected: '%v'\nActual: '%v'", data.expectedResults, r) } } }