tracker/bittorrent/bittorrent_test.go
2018-06-15 13:33:26 -04:00

54 lines
1 KiB
Go

package bittorrent
import (
"fmt"
"net"
"testing"
"github.com/stretchr/testify/require"
)
var (
b = []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}
expected = "0102030405060708090a0b0c0d0e0f1011121314"
)
var peerStringTestCases = []struct {
input Peer
expected string
}{
{
input: Peer{
ID: PeerIDFromBytes(b),
IP: IP{net.IPv4(10, 11, 12, 1), IPv4},
Port: 1234,
},
expected: fmt.Sprintf("%s@[10.11.12.1]:1234", expected),
},
{
input: Peer{
ID: PeerIDFromBytes(b),
IP: IP{net.ParseIP("2001:db8::ff00:42:8329"), IPv6},
Port: 1234,
},
expected: fmt.Sprintf("%s@[2001:db8::ff00:42:8329]:1234", expected),
},
}
func TestPeerID_String(t *testing.T) {
s := PeerIDFromBytes(b).String()
require.Equal(t, expected, s)
}
func TestInfoHash_String(t *testing.T) {
s := InfoHashFromBytes(b).String()
require.Equal(t, expected, s)
}
func TestPeer_String(t *testing.T) {
for _, c := range peerStringTestCases {
got := c.input.String()
require.Equal(t, c.expected, got)
}
}