| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package buffer // import "github.com/tdewolff/parse/buffer"
- import (
- "fmt"
- "testing"
- "github.com/tdewolff/test"
- )
- func TestWriter(t *testing.T) {
- w := NewWriter(make([]byte, 0, 3))
- test.That(t, w.Len() == 0, "buffer must initially have zero length")
- n, _ := w.Write([]byte("abc"))
- test.That(t, n == 3, "first write must write 3 characters")
- test.Bytes(t, w.Bytes(), []byte("abc"), "first write must match 'abc'")
- test.That(t, w.Len() == 3, "buffer must have length 3 after first write")
- n, _ = w.Write([]byte("def"))
- test.That(t, n == 3, "second write must write 3 characters")
- test.Bytes(t, w.Bytes(), []byte("abcdef"), "second write must match 'abcdef'")
- w.Reset()
- test.Bytes(t, w.Bytes(), []byte(""), "reset must match ''")
- n, _ = w.Write([]byte("ghijkl"))
- test.That(t, n == 6, "third write must write 6 characters")
- test.Bytes(t, w.Bytes(), []byte("ghijkl"), "third write must match 'ghijkl'")
- }
- func ExampleNewWriter() {
- w := NewWriter(make([]byte, 0, 11)) // initial buffer length is 11
- w.Write([]byte("Lorem ipsum"))
- fmt.Println(string(w.Bytes()))
- // Output: Lorem ipsum
- }
- func ExampleWriter_Reset() {
- w := NewWriter(make([]byte, 0, 11)) // initial buffer length is 10
- w.Write([]byte("garbage that will be overwritten")) // does reallocation
- w.Reset()
- w.Write([]byte("Lorem ipsum"))
- fmt.Println(string(w.Bytes()))
- // Output: Lorem ipsum
- }
|