Files
mochi/bittorrent/bittorrent_test.go
2022-04-14 19:14:12 +03:00

58 lines
1.2 KiB
Go

package bittorrent
import (
"fmt"
"net/netip"
"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"
)
func TestPeerID_String(t *testing.T) {
pid, err := NewPeerID(b)
require.Nil(t, err)
s := pid.String()
require.Equal(t, expected, s)
}
func TestInfoHash_String(t *testing.T) {
ih, err := NewInfoHash(b)
require.Nil(t, err)
require.Equal(t, expected, ih.String())
}
func TestPeer_String(t *testing.T) {
pid, err := NewPeerID(b)
require.Nil(t, err)
id, _ := NewPeerID(b)
peerStringTestCases := []struct {
input Peer
expected string
}{
{
input: Peer{
ID: id,
AddrPort: netip.MustParseAddrPort("10.11.12.1:1234"),
},
expected: fmt.Sprintf("%s@[10.11.12.1]:1234", expected),
},
{
input: Peer{
ID: id,
AddrPort: netip.MustParseAddrPort("[2001:db8::ff00:42:8329]:1234"),
},
expected: fmt.Sprintf("%s@[2001:db8::ff00:42:8329]:1234", expected),
},
}
for _, c := range peerStringTestCases {
c.input.ID = pid
got := c.input.String()
require.Equal(t, c.expected, got)
}
}