Skip to content

Commit

Permalink
added some unittest for stream
Browse files Browse the repository at this point in the history
  • Loading branch information
phith0n committed Aug 5, 2024
1 parent bd36e84 commit 5309fb4
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions commons/stream_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package commons

import (
"bytes"
"io"
"testing"

Expand Down Expand Up @@ -43,3 +44,88 @@ func TestStream_CurrentIndex(t *testing.T) {
require.Equal(t, []byte("11111"), bs)
require.Equal(t, 5, s.CurrentIndex())
}

func TestStreamReader(t *testing.T) {
var s *Stream
var data []byte
var err error

s = NewStreamFromReader(bytes.NewReader([]byte("abbcccddddeeeee")))
data, err = s.ReadN(1)
require.NoError(t, err)
require.Equal(t, []byte("a"), data)
data, err = s.ReadN(5)
require.NoError(t, err)
require.Equal(t, []byte("bbccc"), data)
data, err = s.PeekN(3)
require.NoError(t, err)
require.Equal(t, []byte("ddd"), data)
data, err = s.PeekN(2)
require.NoError(t, err)
require.Equal(t, []byte("dd"), data)
data, err = s.PeekN(5)
require.NoError(t, err)
require.Equal(t, []byte("dddde"), data)
data, err = s.ReadN(4)
require.NoError(t, err)
require.Equal(t, []byte("dddd"), data)
data, err = s.ReadN(1)
require.NoError(t, err)
require.Equal(t, []byte("e"), data)
data, err = s.ReadN(3)
require.NoError(t, err)
require.Equal(t, []byte("eee"), data)
data, err = s.PeekN(4)

Check failure on line 78 in commons/stream_test.go

View workflow job for this annotation

GitHub Actions / lint

ineffectual assignment to data (ineffassign)
require.Error(t, err)
data, err = s.PeekN(1)
require.NoError(t, err)
require.Equal(t, []byte("e"), data)
data, err = s.ReadN(2)

Check failure on line 83 in commons/stream_test.go

View workflow job for this annotation

GitHub Actions / lint

ineffectual assignment to data (ineffassign)
require.Error(t, err)
data, err = s.ReadN(1)
require.NoError(t, err)
require.Equal(t, []byte("e"), data)
data, err = s.ReadN(1)

Check failure on line 88 in commons/stream_test.go

View workflow job for this annotation

GitHub Actions / lint

ineffectual assignment to data (ineffassign)
require.Error(t, err)
}

func TestEmptyStream(t *testing.T) {
var s *Stream
var data []byte
var err error

s = NewStreamFromReader(bytes.NewReader([]byte{}))
data, err = s.ReadN(2)
require.Error(t, err)
require.Nil(t, data)

data, err = s.PeekN(1)
require.Error(t, err)

s = NewStreamFromReader(bytes.NewReader(nil))
data, err = s.ReadN(1)
require.Error(t, err)
}

func TestStreamBuf(t *testing.T) {
var s *Stream
var data []byte
var err error

s = NewStreamFromReader(bytes.NewReader([]byte("abbcccddddeeeee")))
data, err = s.PeekN(20)
require.Error(t, err)

data, err = s.PeekN(3)
require.NoError(t, err)
require.Equal(t, []byte("abb"), data)

data, err = s.ReadN(5)
require.NoError(t, err)
require.Equal(t, []byte("abbcc"), data)

data, err = s.PeekN(10)
require.NoError(t, err)
require.Equal(t, []byte("cddddeeeee"), data)
}

Check failure on line 131 in commons/stream_test.go

View workflow job for this annotation

GitHub Actions / lint

File is not `gofmt`-ed with `-s` (gofmt)

0 comments on commit 5309fb4

Please sign in to comment.