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  }