package testutil import "net" import "testing" func TestConnRecorder(test *testing.T) { // server listener, err := net.Listen("tcp", "localhost:9999") if err != nil { test.Fatal(err) } defer listener.Close() go func() { conn, err := listener.Accept() defer conn.Close() if err != nil { test.Fatal(err) } buf := [16]byte { } for { _, err := conn.Read(buf[:]) if err != nil { break } } }() // client conn, err := net.Dial("tcp", "localhost:9999") if err != nil { test.Fatal(err) } defer conn.Close() recorder := RecordConn(conn) _, err = recorder.Write([]byte("hello")) if err != nil { test.Fatal(err) } _, err = recorder.Write([]byte("world!")) if err != nil { test.Fatal(err) } err = recorder.Flush() if err != nil { test.Fatal(err) } test.Log("GOT:\n" + recorder.Dump()) if len(recorder.Log) != 3 { test.Fatal("wrong length") } if string(recorder.Log[0].([]byte)) != "hello" { test.Fatal("not equal") } if string(recorder.Log[1].([]byte)) != "world!" { test.Fatal("not equal") } }