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  }