You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
1.8 KiB
107 lines
1.8 KiB
package buffer |
|
|
|
import ( |
|
"bytes" |
|
"testing" |
|
) |
|
|
|
func TestAppendByte(t *testing.T) { |
|
var b Buffer |
|
var want []byte |
|
|
|
for i := 0; i < 1000; i++ { |
|
b.AppendByte(1) |
|
b.AppendByte(2) |
|
want = append(want, 1, 2) |
|
} |
|
|
|
got := b.BuildBytes() |
|
if !bytes.Equal(got, want) { |
|
t.Errorf("BuildBytes() = %v; want %v", got, want) |
|
} |
|
} |
|
|
|
func TestAppendBytes(t *testing.T) { |
|
var b Buffer |
|
var want []byte |
|
|
|
for i := 0; i < 1000; i++ { |
|
b.AppendBytes([]byte{1, 2}) |
|
want = append(want, 1, 2) |
|
} |
|
|
|
got := b.BuildBytes() |
|
if !bytes.Equal(got, want) { |
|
t.Errorf("BuildBytes() = %v; want %v", got, want) |
|
} |
|
} |
|
|
|
func TestAppendString(t *testing.T) { |
|
var b Buffer |
|
var want []byte |
|
|
|
s := "test" |
|
for i := 0; i < 1000; i++ { |
|
b.AppendBytes([]byte(s)) |
|
want = append(want, s...) |
|
} |
|
|
|
got := b.BuildBytes() |
|
if !bytes.Equal(got, want) { |
|
t.Errorf("BuildBytes() = %v; want %v", got, want) |
|
} |
|
} |
|
|
|
func TestDumpTo(t *testing.T) { |
|
var b Buffer |
|
var want []byte |
|
|
|
s := "test" |
|
for i := 0; i < 1000; i++ { |
|
b.AppendBytes([]byte(s)) |
|
want = append(want, s...) |
|
} |
|
|
|
out := &bytes.Buffer{} |
|
n, err := b.DumpTo(out) |
|
if err != nil { |
|
t.Errorf("DumpTo() error: %v", err) |
|
} |
|
|
|
got := out.Bytes() |
|
if !bytes.Equal(got, want) { |
|
t.Errorf("DumpTo(): got %v; want %v", got, want) |
|
} |
|
|
|
if n != len(want) { |
|
t.Errorf("DumpTo() = %v; want %v", n, len(want)) |
|
} |
|
} |
|
|
|
func TestReadCloser(t *testing.T) { |
|
var b Buffer |
|
var want []byte |
|
|
|
s := "test" |
|
for i := 0; i < 1000; i++ { |
|
b.AppendBytes([]byte(s)) |
|
want = append(want, s...) |
|
} |
|
|
|
out := &bytes.Buffer{} |
|
rc := b.ReadCloser() |
|
n, err := out.ReadFrom(rc) |
|
if err != nil { |
|
t.Errorf("ReadCloser() error: %v", err) |
|
} |
|
rc.Close() // Will always return nil |
|
|
|
got := out.Bytes() |
|
if !bytes.Equal(got, want) { |
|
t.Errorf("DumpTo(): got %v; want %v", got, want) |
|
} |
|
|
|
if n != int64(len(want)) { |
|
t.Errorf("DumpTo() = %v; want %v", n, len(want)) |
|
} |
|
}
|
|
|