40 lines
775 B
Go
40 lines
775 B
Go
|
package binaryio
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestMinReader(t *testing.T) {
|
||
|
b := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
|
||
|
r := bytes.NewBuffer(b)
|
||
|
|
||
|
mr := MinReader(r, 10)
|
||
|
|
||
|
toRead := make([]byte, 5)
|
||
|
n, err := mr.Read(toRead)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
if n != 5 {
|
||
|
t.Error("Expected n to be 5, but was ", n)
|
||
|
}
|
||
|
if string(toRead) != string([]byte{1, 2, 3, 4, 5}) {
|
||
|
t.Error("expected 5 specific bytes to be read")
|
||
|
}
|
||
|
err = mr.Close()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
n, err = r.Read(toRead) // read from the outer stream
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
if n != 5 {
|
||
|
t.Error("Expected n to be 5, but was ", n)
|
||
|
}
|
||
|
if string(toRead) != string([]byte{11, 12, 13, 14, 15}) {
|
||
|
t.Error("expected the last 5 bytes to be read")
|
||
|
}
|
||
|
}
|