github.com/x-oss-byte/git-lfs@v2.5.2+incompatible/tools/util_test.go (about)

     1  package tools
     2  
     3  import (
     4  	"bytes"
     5  	"io/ioutil"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestCopyWithCallback(t *testing.T) {
    12  	buf := bytes.NewBufferString("BOOYA")
    13  
    14  	called := 0
    15  	calledWritten := make([]int64, 0, 2)
    16  
    17  	n, err := CopyWithCallback(ioutil.Discard, buf, 5, func(total int64, written int64, current int) error {
    18  		called += 1
    19  		calledWritten = append(calledWritten, written)
    20  		assert.Equal(t, 5, int(total))
    21  		return nil
    22  	})
    23  	assert.Nil(t, err)
    24  	assert.Equal(t, 5, int(n))
    25  
    26  	assert.Equal(t, 1, called)
    27  	assert.Len(t, calledWritten, 1)
    28  	assert.Equal(t, 5, int(calledWritten[0]))
    29  }