diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2015-10-23 12:05:02 +0200 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2015-10-23 12:05:02 +0200 |
commit | 214e1dca024fb6da5ed65564d2de734df5dc2127 (patch) | |
tree | 0c2805a0676006690a8053ae8ccee388ccfc83fe /formats/pktline/decoder_test.go | |
parent | 70923099e61fa33f0bc5256d2f938fa44c4df10e (diff) | |
download | go-git-214e1dca024fb6da5ed65564d2de734df5dc2127.tar.gz |
format/pktline: review and improving coverage
Diffstat (limited to 'formats/pktline/decoder_test.go')
-rw-r--r-- | formats/pktline/decoder_test.go | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/formats/pktline/decoder_test.go b/formats/pktline/decoder_test.go new file mode 100644 index 0000000..e3cd2f4 --- /dev/null +++ b/formats/pktline/decoder_test.go @@ -0,0 +1,85 @@ +package pktline + +import ( + "strings" + "testing" + + . "gopkg.in/check.v1" +) + +func Test(t *testing.T) { TestingT(t) } + +type DecoderSuite struct{} + +var _ = Suite(&DecoderSuite{}) + +func (s *DecoderSuite) TestReadLine(c *C) { + j := NewDecoder(strings.NewReader("0006a\n")) + + line, err := j.ReadLine() + c.Assert(err, IsNil) + c.Assert(line, Equals, "a\n") +} + +func (s *DecoderSuite) TestReadLineInvalidHeader(c *C) { + j := NewDecoder(strings.NewReader("foo\n")) + + _, err := j.ReadLine() + c.Assert(err, Equals, ErrInvalidHeader) +} + +func (s *DecoderSuite) TestReadLineBufferUnderflow(c *C) { + j := NewDecoder(strings.NewReader("00e7a\n")) + + line, err := j.ReadLine() + c.Assert(err, Equals, ErrUnderflow) + c.Assert(line, Equals, "") +} + +func (s *DecoderSuite) TestReadLineInvalidLen(c *C) { + j := NewDecoder(strings.NewReader("0001foo\n")) + + line, err := j.ReadLine() + c.Assert(err, Equals, ErrInvalidLen) + c.Assert(line, Equals, "") +} + +func (s *DecoderSuite) TestReadBlock(c *C) { + j := NewDecoder(strings.NewReader("0006a\n")) + + lines, err := j.ReadBlock() + c.Assert(err, IsNil) + c.Assert(lines, HasLen, 1) + c.Assert(lines[0], Equals, "a\n") +} + +func (s *DecoderSuite) TestReadBlockWithFlush(c *C) { + j := NewDecoder(strings.NewReader("0006a\n0006b\n00000006c\n")) + + lines, err := j.ReadBlock() + c.Assert(err, IsNil) + c.Assert(lines, HasLen, 2) + c.Assert(lines[0], Equals, "a\n") + c.Assert(lines[1], Equals, "b\n") +} + +func (s *DecoderSuite) TestReadBlockInvalidLen(c *C) { + j := NewDecoder(strings.NewReader("0001foo\n")) + + lines, err := j.ReadBlock() + c.Assert(err, Equals, ErrInvalidLen) + c.Assert(lines, HasLen, 0) +} + +func (s *DecoderSuite) TestReadAll(c *C) { + j := NewDecoder(strings.NewReader("0006a\n0006b\n00000006c\n0006d\n0006e\n")) + + lines, err := j.ReadAll() + c.Assert(err, IsNil) + c.Assert(lines, HasLen, 5) + c.Assert(lines[0], Equals, "a\n") + c.Assert(lines[1], Equals, "b\n") + c.Assert(lines[2], Equals, "c\n") + c.Assert(lines[3], Equals, "d\n") + c.Assert(lines[4], Equals, "e\n") +} |