github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/i18n/translator_test.go (about) 1 package i18n 2 3 import ( 4 "testing" 5 6 "github.com/gocaveman/caveman/webutil" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestMapTranslator(t *testing.T) { 11 12 assert := assert.New(t) 13 14 mt := NewMapTranslator() 15 mt.SetEntry("default", "example1", "en", "Example Number 1") 16 mt.SetEntry("default", "example1", "es", "Ejemplo número 1") 17 18 v, err := mt.Translate("default", "example1", "en") 19 assert.Nil(err) 20 assert.Equal("Example Number 1", v) 21 22 v, err = mt.Translate("default", "example1", "es", "en") 23 assert.Nil(err) 24 assert.Equal("Ejemplo número 1", v) 25 26 v, err = mt.Translate("default", "example1", "fi", "en") 27 assert.Nil(err) 28 assert.Equal("Example Number 1", v) 29 30 _, err = mt.Translate("default", "example1", "fi") 31 assert.Equal(ErrNotFound, err) 32 33 _, err = mt.Translate("default", "example-not-exist", "en") 34 assert.Equal(ErrNotFound, err) 35 36 _, err = mt.Translate("not-exist", "example1", "en") 37 assert.Equal(ErrNotFound, err) 38 39 } 40 41 func TestNamedSequenceTranslator(t *testing.T) { 42 43 assert := assert.New(t) 44 45 mt1 := NewMapTranslator() 46 mt1.SetEntry("default", "example1", "en", "Example Number 1 (mt1)") 47 mt1.SetEntry("default", "example1", "es", "Ejemplo número 1 (mt1)") 48 49 mt2 := NewMapTranslator() 50 mt2.SetEntry("default", "example1", "es", "Ejemplo número 1 (mt2)") 51 mt2.SetEntry("default", "example1", "fi", "Esimerkki numero 1 (mt2)") 52 53 var ns webutil.NamedSequence 54 ns = append(ns, webutil.NamedSequenceItem{Sequence: 1, Name: "mt1", Value: mt1}) 55 ns = append(ns, webutil.NamedSequenceItem{Sequence: 2, Name: "mt2", Value: mt2}) 56 57 nst := NewNamedSequenceTranslator(ns, true) 58 59 v, err := nst.Translate("default", "example1", "en") 60 assert.Nil(err) 61 assert.Equal("Example Number 1 (mt1)", v) 62 63 v, err = nst.Translate("default", "example1", "es") 64 assert.Nil(err) 65 assert.Equal("Ejemplo número 1 (mt1)", v) 66 67 v, err = nst.Translate("default", "example1", "fi") 68 assert.Nil(err) 69 assert.Equal("Esimerkki numero 1 (mt2)", v) 70 71 _, err = nst.Translate("not-here", "not-here", "en") 72 assert.Equal(ErrNotFound, err) 73 74 }