The core protocol of WoopChain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
woop/p2p/peer_test.go

53 lines
1011 B

package p2p
import (
"bufio"
"net"
"testing"
)
func setUpTestServer(times int, t *testing.T, conCreated chan bool) {
t.Parallel()
ln, _ := net.Listen("tcp", ":8081")
conCreated <- true
conn, _ := ln.Accept()
defer conn.Close()
var (
w = bufio.NewWriter(conn)
)
for times > 0 {
times--
data, err := ReadMessageContent(conn)
if err != nil {
t.Fatalf("error when ReadMessageContent %v", err)
}
data = CreateMessage(byte(1), data)
w.Write(data)
w.Flush()
}
}
func TestNewNewNode(t *testing.T) {
times := 100
conCreated := make(chan bool)
go setUpTestServer(times, t, conCreated)
<-conCreated
conn, _ := net.Dial("tcp", "127.0.0.1:8081")
for times > 0 {
times--
myMsg := "minhdoan"
SendMessageContent(conn, []byte(myMsg))
data, err := ReadMessageContent(conn)
if err != nil {
t.Error("got an error when trying to receive an expected message from server.")
}
if string(data) != myMsg {
t.Error("did not receive expected message")
}
}
conn.Close()
}