diff options
Diffstat (limited to 'utils/ioutil/common_test.go')
-rw-r--r-- | utils/ioutil/common_test.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/utils/ioutil/common_test.go b/utils/ioutil/common_test.go new file mode 100644 index 0000000..f5017f7 --- /dev/null +++ b/utils/ioutil/common_test.go @@ -0,0 +1,55 @@ +package ioutil + +import ( + "bytes" + "io/ioutil" + "testing" + + . "gopkg.in/check.v1" +) + +func Test(t *testing.T) { TestingT(t) } + +type CommonSuite struct{} + +var _ = Suite(&CommonSuite{}) + +type closer struct { + called int +} + +func (c *closer) Close() error { + c.called++ + return nil +} + +func (s *CommonSuite) TestNonEmptyReader_Empty(c *C) { + var buf bytes.Buffer + r, err := NonEmptyReader(&buf) + c.Assert(err, Equals, ErrEmptyReader) + c.Assert(r, IsNil) +} + +func (s *CommonSuite) TestNonEmptyReader_NonEmpty(c *C) { + buf := bytes.NewBuffer([]byte("1")) + r, err := NonEmptyReader(buf) + c.Assert(err, IsNil) + c.Assert(r, NotNil) + + read, err := ioutil.ReadAll(r) + c.Assert(err, IsNil) + c.Assert(string(read), Equals, "1") +} + +func (s *CommonSuite) TestNewReadCloser(c *C) { + buf := bytes.NewBuffer([]byte("1")) + closer := &closer{} + r := NewReadCloser(buf, closer) + + read, err := ioutil.ReadAll(r) + c.Assert(err, IsNil) + c.Assert(string(read), Equals, "1") + + c.Assert(r.Close(), IsNil) + c.Assert(closer.called, Equals, 1) +} |