trans-alfred/trans/trans_test.go

92 lines
1.5 KiB
Go

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)
}
}
}