53 lines
1 KiB
Go
53 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)
|
|
}
|
|
}
|