You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-zero/core/iox/textlinescanner_test.go

33 lines
630 B
Go

4 years ago
package iox
import (
"strings"
"testing"
"testing/iotest"
4 years ago
"github.com/stretchr/testify/assert"
)
func TestScanner(t *testing.T) {
const val = `1
2
3
4`
reader := strings.NewReader(val)
scanner := NewTextLineScanner(reader)
var lines []string
for scanner.Scan() {
line, err := scanner.Line()
assert.Nil(t, err)
lines = append(lines, line)
}
assert.EqualValues(t, []string{"1", "2", "3", "4"}, lines)
}
func TestBadScanner(t *testing.T) {
scanner := NewTextLineScanner(iotest.ErrReader(iotest.ErrTimeout))
assert.False(t, scanner.Scan())
_, err := scanner.Line()
assert.ErrorIs(t, err, iotest.ErrTimeout)
}