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) } }