2016-11-18 19:54:56 +00:00
|
|
|
package lfs
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bufio"
|
|
|
|
"strings"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2016-11-18 21:45:21 +00:00
|
|
|
func TestCatFileBatchCheckScannerWithValidOutput(t *testing.T) {
|
2016-11-18 19:54:56 +00:00
|
|
|
lines := []string{
|
|
|
|
"short line",
|
|
|
|
"0000000000000000000000000000000000000000 BLOB capitalized",
|
|
|
|
"0000000000000000000000000000000000000001 blob not-a-size",
|
|
|
|
"0000000000000000000000000000000000000002 blob 123",
|
|
|
|
"0000000000000000000000000000000000000003 blob 1 0",
|
|
|
|
"0000000000000000000000000000000000000004 blob 123456789",
|
|
|
|
}
|
|
|
|
r := strings.NewReader(strings.Join(lines, "\n"))
|
|
|
|
s := &catFileBatchCheckScanner{
|
|
|
|
s: bufio.NewScanner(r),
|
|
|
|
limit: 1024,
|
|
|
|
}
|
|
|
|
|
2017-02-16 23:52:40 +00:00
|
|
|
assertNextOID(t, s, "", "")
|
|
|
|
assertNextOID(t, s, "", "")
|
|
|
|
assertNextOID(t, s, "", "")
|
|
|
|
assertNextOID(t, s, "0000000000000000000000000000000000000002", "")
|
|
|
|
assertNextOID(t, s, "", "")
|
|
|
|
assertNextOID(t, s, "", "0000000000000000000000000000000000000004")
|
2016-11-19 00:00:57 +00:00
|
|
|
assertScannerDone(t, s)
|
2017-02-16 23:52:40 +00:00
|
|
|
assert.Equal(t, "", s.LFSBlobOID())
|
|
|
|
assert.Equal(t, "", s.GitBlobOID())
|
2016-11-18 22:56:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type stringScanner interface {
|
|
|
|
Next() (string, bool, error)
|
2016-11-19 00:00:57 +00:00
|
|
|
Err() error
|
|
|
|
Scan() bool
|
2016-11-18 22:56:29 +00:00
|
|
|
}
|
|
|
|
|
2016-11-19 00:00:57 +00:00
|
|
|
type genericScanner interface {
|
|
|
|
Err() error
|
|
|
|
Scan() bool
|
2016-11-18 22:56:29 +00:00
|
|
|
}
|
|
|
|
|
2016-11-19 00:00:57 +00:00
|
|
|
func assertNextScan(t *testing.T, scanner genericScanner) {
|
|
|
|
assert.True(t, scanner.Scan())
|
|
|
|
assert.Nil(t, scanner.Err())
|
2016-11-18 22:56:29 +00:00
|
|
|
}
|
2016-11-18 19:54:56 +00:00
|
|
|
|
2017-02-16 23:52:40 +00:00
|
|
|
func assertNextOID(t *testing.T, scanner *catFileBatchCheckScanner, lfsBlobOID, gitBlobOID string) {
|
2016-11-19 00:00:57 +00:00
|
|
|
assertNextScan(t, scanner)
|
2017-02-16 23:52:40 +00:00
|
|
|
assert.Equal(t, lfsBlobOID, scanner.LFSBlobOID())
|
|
|
|
assert.Equal(t, gitBlobOID, scanner.GitBlobOID())
|
2016-11-19 00:00:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func assertScannerDone(t *testing.T, scanner genericScanner) {
|
|
|
|
assert.False(t, scanner.Scan())
|
|
|
|
assert.Nil(t, scanner.Err())
|
2016-11-18 19:54:56 +00:00
|
|
|
}
|