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  }