diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2018-11-27 23:08:08 -0500 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2018-11-27 23:15:49 -0500 |
| commit | 7a1263ced6dfbea47b1a99f07b97d45cf03b4a36 (patch) | |
| tree | ef38238691a362907a1a34cd3cb34bdd3de2ed50 /template_test.go | |
| parent | 64849331e9a42ebd6b57c1fc24dec20300a4c401 (diff) | |
Adding option to suppress empty output files
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'template_test.go')
| -rw-r--r-- | template_test.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/template_test.go b/template_test.go index 190fb35f..fb71ecea 100644 --- a/template_test.go +++ b/template_test.go @@ -295,3 +295,60 @@ func TestProcessTemplates(t *testing.T) { fs.Remove("out") } } + +func TestAllWhitespace(t *testing.T) { + testdata := []struct { + in []byte + expected bool + }{ + {[]byte(" "), true}, + {[]byte("foo"), false}, + {[]byte(" \t\n\n\v\r\n"), true}, + {[]byte(" foo "), false}, + } + + for _, d := range testdata { + assert.Equal(t, d.expected, allWhitespace(d.in)) + } +} + +func TestEmptySkipper(t *testing.T) { + testdata := []struct { + in []byte + empty bool + }{ + {[]byte(" "), true}, + {[]byte("foo"), false}, + {[]byte(" \t\n\n\v\r\n"), true}, + {[]byte(" foo "), false}, + } + + for _, d := range testdata { + w := &bufferCloser{&bytes.Buffer{}} + opened := false + f := newEmptySkipper(func() (io.WriteCloser, error) { + t.Logf("I got called %#v", w) + opened = true + return w, nil + }) + n, err := f.Write(d.in) + assert.NoError(t, err) + assert.Equal(t, len(d.in), n) + if d.empty { + assert.Nil(t, f.w) + assert.False(t, opened) + } else { + assert.NotNil(t, f.w) + assert.True(t, opened) + assert.EqualValues(t, d.in, w.Bytes()) + } + } +} + +type bufferCloser struct { + *bytes.Buffer +} + +func (b *bufferCloser) Close() error { + return nil +} |
