package listenbuffer import ( "io/ioutil" "net" "testing" ) func TestListenBufferAllowsAcceptingWhenActivated(t *testing.T) { lock := make(chan struct{}) buffer, err := NewListenBuffer("tcp", "", lock) if err != nil { t.Fatal("Unable to create listen buffer: ", err) } go func() { conn, err := net.Dial("tcp", buffer.Addr().String()) if err != nil { t.Fatal("Client failed to establish connection to server: ", err) } conn.Write([]byte("ping")) conn.Close() }() close(lock) client, err := buffer.Accept() if err != nil { t.Fatal("Failed to accept client: ", err) } response, err := ioutil.ReadAll(client) if err != nil { t.Fatal("Failed to read from client: ", err) } if string(response) != "ping" { t.Fatal("Expected to receive ping from client, received: ", string(response)) } }