summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go')
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go
new file mode 100644
index 000000000..f0d0d47a1
--- /dev/null
+++ b/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_test.go
@@ -0,0 +1,74 @@
+package main
+
+import (
+ "bytes"
+ "io/ioutil"
+ "os"
+ "testing"
+)
+
+func TestMergeExecuteJSON(t *testing.T) {
+ files := []string{
+ "testdata/input/en-us.one.json",
+ "testdata/input/en-us.two.json",
+ "testdata/input/fr-fr.json",
+ "testdata/input/ar-ar.one.json",
+ "testdata/input/ar-ar.two.json",
+ }
+ testMergeExecute(t, files)
+}
+
+func TestMergeExecuteYAML(t *testing.T) {
+ files := []string{
+ "testdata/input/yaml/en-us.one.yaml",
+ "testdata/input/yaml/en-us.two.json",
+ "testdata/input/yaml/fr-fr.json",
+ "testdata/input/yaml/ar-ar.one.json",
+ "testdata/input/yaml/ar-ar.two.json",
+ }
+ testMergeExecute(t, files)
+}
+
+func testMergeExecute(t *testing.T, files []string) {
+ resetDir(t, "testdata/output")
+
+ mc := &mergeCommand{
+ translationFiles: files,
+ sourceLanguageTag: "en-us",
+ outdir: "testdata/output",
+ format: "json",
+ }
+ if err := mc.execute(); err != nil {
+ t.Fatal(err)
+ }
+
+ expectEqualFiles(t, "testdata/output/en-us.all.json", "testdata/expected/en-us.all.json")
+ expectEqualFiles(t, "testdata/output/ar-ar.all.json", "testdata/expected/ar-ar.all.json")
+ expectEqualFiles(t, "testdata/output/fr-fr.all.json", "testdata/expected/fr-fr.all.json")
+ expectEqualFiles(t, "testdata/output/en-us.untranslated.json", "testdata/expected/en-us.untranslated.json")
+ expectEqualFiles(t, "testdata/output/ar-ar.untranslated.json", "testdata/expected/ar-ar.untranslated.json")
+ expectEqualFiles(t, "testdata/output/fr-fr.untranslated.json", "testdata/expected/fr-fr.untranslated.json")
+}
+
+func resetDir(t *testing.T, dir string) {
+ if err := os.RemoveAll(dir); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Mkdir(dir, 0777); err != nil {
+ t.Fatal(err)
+ }
+}
+
+func expectEqualFiles(t *testing.T, expectedName, actualName string) {
+ actual, err := ioutil.ReadFile(actualName)
+ if err != nil {
+ t.Fatal(err)
+ }
+ expected, err := ioutil.ReadFile(expectedName)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if !bytes.Equal(actual, expected) {
+ t.Fatalf("contents of files did not match: %s, %s", expectedName, actualName)
+ }
+}