github.com/codingeasygo/util@v0.0.0-20231206062002-1ce2f004b7d9/xio/prefix_test.go (about) 1 package xio 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 ) 8 9 func TestPrefixReader(t *testing.T) { 10 buffer := make([]byte, 1024) 11 reader := NewPrefixReader(bytes.NewBufferString("abc")) 12 reader.PreRead(1) 13 err := FullBuffer(reader, buffer, 3, nil) 14 if err != nil || string(buffer[0:3]) != "abc" { 15 t.Error(err) 16 return 17 } 18 } 19 20 func TestPrefixReadWriteCloser(t *testing.T) { 21 conn := NewPrefixReadWriteCloser(NewEchoConn()) 22 fmt.Fprintf(conn, "abc") 23 conn.PreRead(1) 24 buffer := make([]byte, 1024) 25 err := FullBuffer(conn, buffer, 3, nil) 26 if err != nil || string(buffer[0:3]) != "abc" { 27 t.Error(err) 28 return 29 } 30 } 31 32 func TestNewPrefixConn(t *testing.T) { 33 conn := NewPrefixConn(NewEchoConn()) 34 fmt.Fprintf(conn, "abc") 35 conn.PreRead(1) 36 buffer := make([]byte, 1024) 37 err := FullBuffer(conn, buffer, 3, nil) 38 if err != nil || string(buffer[0:3]) != "abc" { 39 t.Error(err) 40 return 41 } 42 }