package peer
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestLocalConnection(t *testing.T) {
|
|
|
|
c1 := NewClient(func(conn *Connection) *Peer {
|
|
p := &Peer{conn: conn}
|
|
|
|
ch1 := NewChannel(String("ch1"),
|
|
nil,
|
|
// XXX these channels should be buffered.
|
|
make(chan ByteSlice),
|
|
make(chan ByteSlice),
|
|
)
|
|
|
|
ch2 := NewChannel(String("ch2"),
|
|
nil,
|
|
make(chan ByteSlice),
|
|
make(chan ByteSlice),
|
|
)
|
|
|
|
channels := make(map[String]*Channel)
|
|
channels[ch1.Name] = ch1
|
|
channels[ch2.Name] = ch2
|
|
p.channels = channels
|
|
|
|
return p
|
|
})
|
|
|
|
// XXX make c2 like c1.
|
|
|
|
c2 := NewClient(func(conn *Connection) *Peer {
|
|
return nil
|
|
})
|
|
|
|
// XXX clients don't have "local addresses"
|
|
c1.ConnectTo(c2.LocalAddress())
|
|
|
|
// lets send a message from c1 to c2.
|
|
c1.Broadcast(String(""), String("message"))
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
inMsg := c2.PopMessage()
|
|
|
|
c1.Stop()
|
|
c2.Stop()
|
|
}
|