42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package system
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
. "github.com/franela/goblin"
|
|
)
|
|
|
|
func TestScanReader(t *testing.T) {
|
|
g := Goblin(t)
|
|
|
|
g.Describe("ScanReader", func() {
|
|
g.BeforeEach(func() {
|
|
maxBufferSize = 10
|
|
})
|
|
|
|
g.It("should truncate and return long lines", func() {
|
|
reader := strings.NewReader("hello world this is a long line\nof text that should be truncated\nnot here\nbut definitely on this line")
|
|
|
|
var lines []string
|
|
err := ScanReader(reader, func(line []byte) {
|
|
lines = append(lines, string(line))
|
|
})
|
|
|
|
g.Assert(err).IsNil()
|
|
g.Assert(lines).Equal([]string{"hello worl", "of text th", "not here", "but defini"})
|
|
})
|
|
|
|
g.It("should replace cariage returns with newlines", func() {
|
|
reader := strings.NewReader("test\rstring\r\nanother\rline\nhodor\r\r\rheld the door\nmaterial gourl\n")
|
|
var lines []string
|
|
err := ScanReader(reader, func(line []byte) {
|
|
lines = append(lines, string(line))
|
|
})
|
|
|
|
g.Assert(err).IsNil()
|
|
g.Assert(lines).Equal([]string{"test\rstrin", "another\rli", "hodor\r\r\rhe", "material g"})
|
|
})
|
|
})
|
|
}
|