package peer import ( "testing" ) func TestConnWriter_WriteData_direct(t *testing.T) { p1, p2, _ := NewPeersForTesting() in := RandPacket() p1.ConnWriter.WriteData(2, in) packets := p2.Conn.Packets() if len(packets) != 1 { t.Fatal(packets) } } func TestConnWriter_WriteData_peerNotUp(t *testing.T) { p1, p2, _ := NewPeersForTesting() p1.RT.Load().Peers[2].Up = false in := RandPacket() p1.ConnWriter.WriteData(2, in) packets := p2.Conn.Packets() if len(packets) != 0 { t.Fatal(packets) } } func TestConnWriter_WriteData_relay(t *testing.T) { p1, _, p3 := NewPeersForTesting() p1.RT.Load().Peers[2].Direct = false p1.RT.Load().RelayIP = 3 in := RandPacket() p1.ConnWriter.WriteData(2, in) packets := p3.Conn.Packets() if len(packets) != 1 { t.Fatal(packets) } } func TestConnWriter_WriteData_relayNotAvailable(t *testing.T) { p1, _, p3 := NewPeersForTesting() p1.RT.Load().Peers[2].Direct = false p1.RT.Load().Peers[3].Up = false p1.RT.Load().RelayIP = 3 in := RandPacket() p1.ConnWriter.WriteData(2, in) packets := p3.Conn.Packets() if len(packets) != 0 { t.Fatal(packets) } } func TestConnWriter_WriteControl_direct(t *testing.T) { p1, p2, _ := NewPeersForTesting() orig := PacketProbe{TraceID: newTraceID()} p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig) packets := p2.Conn.Packets() if len(packets) != 1 { t.Fatal(packets) } } func TestConnWriter_WriteControl_relay(t *testing.T) { p1, _, p3 := NewPeersForTesting() p1.RT.Load().Peers[2].Direct = false p1.RT.Load().RelayIP = 3 orig := PacketProbe{TraceID: newTraceID()} p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig) packets := p3.Conn.Packets() if len(packets) != 1 { t.Fatal(packets) } } func TestConnWriter_WriteControl_relayNotAvailable(t *testing.T) { p1, _, p3 := NewPeersForTesting() p1.RT.Load().Peers[2].Direct = false p1.RT.Load().Peers[3].Up = false p1.RT.Load().RelayIP = 3 orig := PacketProbe{TraceID: newTraceID()} p1.ConnWriter.WriteControl(p1.RT.Load().Peers[2], orig) packets := p3.Conn.Packets() if len(packets) != 0 { t.Fatal(packets) } } func TestConnWriter__Forward(t *testing.T) { p1, p2, _ := NewPeersForTesting() in := RandPacket() p1.ConnWriter.Forward(2, in) packets := p2.Conn.Packets() if len(packets) != 1 { t.Fatal(packets) } } func TestConnWriter__Forward_notUp(t *testing.T) { p1, p2, _ := NewPeersForTesting() p1.RT.Load().Peers[2].Up = false in := RandPacket() p1.ConnWriter.Forward(2, in) packets := p2.Conn.Packets() if len(packets) != 0 { t.Fatal(packets) } } func TestConnWriter__Forward_notDirect(t *testing.T) { p1, p2, _ := NewPeersForTesting() p1.RT.Load().Peers[2].Direct = false in := RandPacket() p1.ConnWriter.Forward(2, in) packets := p2.Conn.Packets() if len(packets) != 0 { t.Fatal(packets) } }