tendermint/peer/client_test.go

53 lines
1.3 KiB
Go
Raw Normal View History

2014-06-28 13:09:04 -07:00
package peer
import (
. "github.com/tendermint/tendermint/binary"
"testing"
"time"
)
func TestConnection(t *testing.T) {
peerMaker := func(conn *Connection) *Peer {
bufferSize := 10
p := NewPeer(conn)
p.channels = map[String]*Channel{}
p.channels["ch1"] = NewChannel("ch1", bufferSize)
p.channels["ch2"] = NewChannel("ch2", bufferSize)
return p
}
c1 := NewClient(peerMaker)
c2 := NewClient(peerMaker)
s1 := NewServer("tcp", ":8001", c1)
2014-06-29 00:35:16 -07:00
s1laddr := s1.LocalAddress()
2014-06-28 13:09:04 -07:00
2014-06-29 00:35:16 -07:00
conn, err := s1laddr.Dial()
2014-06-28 13:09:04 -07:00
if err != nil {
2014-06-29 00:35:16 -07:00
t.Fatalf("Could not connect to server address %v", s1laddr)
} else {
t.Logf("Created a connection to local server address %v", s1laddr)
2014-06-28 13:09:04 -07:00
}
c2.AddPeerWithConnection(conn, true)
2014-06-29 00:35:16 -07:00
// Wait for things to happen, peers to get added...
time.Sleep(100 * time.Millisecond)
2014-06-28 13:09:04 -07:00
// lets send a message from c1 to c2.
2014-06-29 00:35:16 -07:00
if c1.Peers().Size() != 1 {
t.Errorf("Expected exactly 1 peer in c1, got %v", c1.Peers().Size())
}
if c2.Peers().Size() != 1 {
t.Errorf("Expected exactly 1 peer in c2, got %v", c2.Peers().Size())
}
2014-06-28 13:09:04 -07:00
2014-06-29 00:35:16 -07:00
// TODO: test the transmission of information on channels.
time.Sleep(500 * time.Millisecond)
2014-06-28 13:09:04 -07:00
//inMsg := c2.PopMessage(String(""))
s1.Stop()
c2.Stop()
}