github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/i18n/i18nyaml/i18nyaml_test.go (about)

     1  package i18nyaml
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/gocaveman/caveman/filesystem/aferofs"
     9  	"github.com/gocaveman/caveman/i18n"
    10  	"github.com/spf13/afero"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestLoad(t *testing.T) {
    15  
    16  	assert := assert.New(t)
    17  
    18  	yamlText := `
    19  test1: Test Number 1
    20  test2: Test Number 2
    21  test3: Test Number 3
    22  `
    23  
    24  	tr, err := Load(bytes.NewReader([]byte(yamlText)), "default", "en")
    25  	assert.Nil(err)
    26  
    27  	v, err := tr.Translate("default", "test2", "en")
    28  	assert.Nil(err)
    29  
    30  	assert.Equal("Test Number 2", v)
    31  
    32  }
    33  
    34  func TestLoadDir(t *testing.T) {
    35  
    36  	assert := assert.New(t)
    37  
    38  	afs := afero.NewMemMapFs()
    39  	fs := aferofs.New(afs)
    40  	fs.Mkdir("/i18n", 0755)
    41  
    42  	f, err := fs.OpenFile("/i18n/default.en.yaml", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)
    43  	assert.Nil(err)
    44  	defer f.Close()
    45  	f.Write([]byte(`
    46  test1: Test Number 1
    47  test2: Test Number 2
    48  test3: Test Number 3
    49  `))
    50  
    51  	f, err = fs.OpenFile("/i18n/default.es.yaml", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)
    52  	assert.Nil(err)
    53  	defer f.Close()
    54  	f.Write([]byte(`
    55  test1: Prueba número 1
    56  test2: Prueba número 2
    57  test3: Prueba número 3
    58  `))
    59  
    60  	ns, err := LoadDir(afero.NewHttpFs(afs), "/i18n")
    61  	assert.Nil(err)
    62  
    63  	tr := i18n.NewNamedSequenceTranslator(ns, true)
    64  	v, err := tr.Translate("default", "test2", "es")
    65  	assert.Nil(err)
    66  
    67  	assert.Equal("Prueba número 2", v)
    68  
    69  }