aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/tdewolff/parse/buffer/reader_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tdewolff/parse/buffer/reader_test.go')
-rw-r--r--vendor/github.com/tdewolff/parse/buffer/reader_test.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/parse/buffer/reader_test.go b/vendor/github.com/tdewolff/parse/buffer/reader_test.go
new file mode 100644
index 0000000..73600ec
--- /dev/null
+++ b/vendor/github.com/tdewolff/parse/buffer/reader_test.go
@@ -0,0 +1,49 @@
+package buffer // import "github.com/tdewolff/parse/buffer"
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "testing"
+
+ "github.com/tdewolff/test"
+)
+
+func TestReader(t *testing.T) {
+ s := []byte("abcde")
+ r := NewReader(s)
+ test.Bytes(t, r.Bytes(), s, "reader must return bytes stored")
+
+ buf := make([]byte, 3)
+ n, err := r.Read(buf)
+ test.T(t, err, nil, "error")
+ test.That(t, n == 3, "first read must read 3 characters")
+ test.Bytes(t, buf, []byte("abc"), "first read must match 'abc'")
+
+ n, err = r.Read(buf)
+ test.T(t, err, nil, "error")
+ test.That(t, n == 2, "second read must read 2 characters")
+ test.Bytes(t, buf[:n], []byte("de"), "second read must match 'de'")
+
+ n, err = r.Read(buf)
+ test.T(t, err, io.EOF, "error")
+ test.That(t, n == 0, "third read must read 0 characters")
+
+ n, err = r.Read(nil)
+ test.T(t, err, nil, "error")
+ test.That(t, n == 0, "read to nil buffer must return 0 characters read")
+
+ r.Reset()
+ n, err = r.Read(buf)
+ test.T(t, err, nil, "error")
+ test.That(t, n == 3, "read after reset must read 3 characters")
+ test.Bytes(t, buf, []byte("abc"), "read after reset must match 'abc'")
+}
+
+func ExampleNewReader() {
+ r := NewReader([]byte("Lorem ipsum"))
+ w := &bytes.Buffer{}
+ io.Copy(w, r)
+ fmt.Println(w.String())
+ // Output: Lorem ipsum
+}