11 "github.com/stretchr/testify/assert"
14 func TestObjectReaderReadsHeaders(t *testing.T) {
15 var compressed bytes.Buffer
17 zw := zlib.NewWriter(&compressed)
18 zw.Write([]byte("blob 1\x00"))
21 or, err := NewObjectReader(&compressed)
24 typ, size, err := or.Header()
27 assert.EqualValues(t, 1, size)
28 assert.Equal(t, BlobObjectType, typ)
31 func TestObjectReaderConsumesHeaderBeforeReads(t *testing.T) {
32 var compressed bytes.Buffer
34 zw := zlib.NewWriter(&compressed)
35 zw.Write([]byte("blob 1\x00asdf"))
38 or, err := NewObjectReader(&compressed)
42 n, err := or.Read(buf[:])
45 assert.Equal(t, []byte{'a', 's', 'd', 'f'}, buf[:])
49 type ReadCloserFn struct {
54 func (r *ReadCloserFn) Close() error {
58 func TestObjectReaderCallsClose(t *testing.T) {
60 expected := errors.New("expected")
62 or, err := NewObjectReadCloser(&ReadCloserFn{
63 Reader: bytes.NewBuffer([]byte{0x78, 0x01}),
64 closeFn: func() error {
65 atomic.AddUint32(&calls, 1)
73 assert.Equal(t, expected, got)
74 assert.EqualValues(t, 1, atomic.LoadUint32(&calls))