diff options
Diffstat (limited to 'process_test.go')
| -rw-r--r-- | process_test.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/process_test.go b/process_test.go new file mode 100644 index 00000000..5b7fc812 --- /dev/null +++ b/process_test.go @@ -0,0 +1,58 @@ +package main + +import ( + "io/ioutil" + "os" + "testing" + + "path/filepath" + + "log" + + "github.com/stretchr/testify/assert" +) + +func TestReadInput(t *testing.T) { + actual, err := readInputs("foo", nil) + assert.Nil(t, err) + assert.Equal(t, "foo", actual[0]) + + // stdin is "" because during tests it's given /dev/null + actual, err = readInputs("", []string{"-"}) + assert.Nil(t, err) + assert.Equal(t, "", actual[0]) + + actual, err = readInputs("", []string{"main_test.go"}) + assert.Nil(t, err) + thisFile, _ := os.Open("main_test.go") + expected, _ := ioutil.ReadAll(thisFile) + assert.Equal(t, string(expected), actual[0]) +} + +func TestInputDir(t *testing.T) { + outDir, err := ioutil.TempDir("test/files/input-dir", "out-temp-") + assert.Nil(t, err) + defer (func() { + if cerr := os.RemoveAll(outDir); cerr != nil { + log.Fatalf("Error while removing temporary directory %s : %v", outDir, cerr) + } + })() + + src, err := ParseSource("config=test/files/input-dir/config.yml") + assert.Nil(t, err) + + data := &Data{ + Sources: map[string]*Source{"config": src}, + } + gomplate := NewGomplate(data, "{{", "}}") + err = processInputDir("test/files/input-dir/in", outDir, gomplate) + assert.Nil(t, err) + + top, err := ioutil.ReadFile(filepath.Join(outDir, "top.txt")) + assert.Nil(t, err) + assert.Equal(t, "eins", string(top)) + + inner, err := ioutil.ReadFile(filepath.Join(outDir, "inner/nested.txt")) + assert.Nil(t, err) + assert.Equal(t, "zwei", string(inner)) +} |
