-
Notifications
You must be signed in to change notification settings - Fork 211
/
id_test.go
59 lines (46 loc) · 1.26 KB
/
id_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package noise_test
import (
"fmt"
"github.com/perlin-network/noise"
"github.com/stretchr/testify/assert"
"io"
"net"
"strconv"
"testing"
"testing/quick"
)
func TestID_String(t *testing.T) {
t.Parallel()
f := func(publicKey noise.PublicKey, host net.IP, port uint16) bool {
if host.IsLoopback() || host.IsUnspecified() { // Make-shift 'normalizeIP(net.IP)'.
host = nil
}
h := host.String()
if h == "<nil>" {
h = ""
}
id := noise.NewID(publicKey, host, port)
if !assert.Equal(t,
fmt.Sprintf(
`{"public_key": "%s", "address": "%s"}`,
publicKey, net.JoinHostPort(h, strconv.FormatUint(uint64(port), 10)),
),
id.String(),
) {
return false
}
return true
}
assert.NoError(t, quick.Check(f, nil))
}
func TestUnmarshalID(t *testing.T) {
t.Parallel()
_, err := noise.UnmarshalID(nil)
assert.EqualError(t, err, io.ErrUnexpectedEOF.Error())
_, err = noise.UnmarshalID(append(noise.ZeroPublicKey[:], 1))
assert.EqualError(t, err, io.ErrUnexpectedEOF.Error())
_, err = noise.UnmarshalID(append(noise.ZeroPublicKey[:], append(net.IPv6loopback, 1)...))
assert.EqualError(t, err, io.ErrUnexpectedEOF.Error())
_, err = noise.UnmarshalID(append(noise.ZeroPublicKey[:], append(net.IPv6loopback, 1, 2)...))
assert.NoError(t, err)
}