github.com/hawser/git-hawser@v2.5.2+incompatible/lfs/util_test.go (about) 1 package lfs 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/git-lfs/git-lfs/tools" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestBodyWithCallback(t *testing.T) { 12 called := 0 13 calledRead := make([]int64, 0, 2) 14 15 cb := func(total int64, read int64, current int) error { 16 called += 1 17 calledRead = append(calledRead, read) 18 assert.Equal(t, 5, int(total)) 19 return nil 20 } 21 reader := tools.NewByteBodyWithCallback([]byte("BOOYA"), 5, cb) 22 23 readBuf := make([]byte, 3) 24 n, err := reader.Read(readBuf) 25 assert.Nil(t, err) 26 assert.Equal(t, "BOO", string(readBuf[0:n])) 27 28 n, err = reader.Read(readBuf) 29 assert.Nil(t, err) 30 assert.Equal(t, "YA", string(readBuf[0:n])) 31 32 assert.Equal(t, 2, called) 33 assert.Len(t, calledRead, 2) 34 assert.Equal(t, 3, int(calledRead[0])) 35 assert.Equal(t, 5, int(calledRead[1])) 36 } 37 38 func TestReadWithCallback(t *testing.T) { 39 called := 0 40 calledRead := make([]int64, 0, 2) 41 42 reader := &tools.CallbackReader{ 43 TotalSize: 5, 44 Reader: bytes.NewBufferString("BOOYA"), 45 C: func(total int64, read int64, current int) error { 46 called += 1 47 calledRead = append(calledRead, read) 48 assert.Equal(t, 5, int(total)) 49 return nil 50 }, 51 } 52 53 readBuf := make([]byte, 3) 54 n, err := reader.Read(readBuf) 55 assert.Nil(t, err) 56 assert.Equal(t, "BOO", string(readBuf[0:n])) 57 58 n, err = reader.Read(readBuf) 59 assert.Nil(t, err) 60 assert.Equal(t, "YA", string(readBuf[0:n])) 61 62 assert.Equal(t, 2, called) 63 assert.Len(t, calledRead, 2) 64 assert.Equal(t, 3, int(calledRead[0])) 65 assert.Equal(t, 5, int(calledRead[1])) 66 }