go-dht/kademlia/id_test.go
kademlia/id_test.goRaw
1package kademlia
2
3import (
4 "encoding/json"
5 "fmt"
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9)
10
11func TestNewID(t *testing.T) {
12 // get some IDs
13 // for i := 0; i < 10; i++ {
14 // id, err := NewID()
15 // assert.Nil(t, err)
16 // fmt.Println(id)
17 // }
18
19 idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
20 assert.Nil(t, err)
21 assert.Equal(t, "0fd85ddddf15aeec2d5d8b01b013dbca030a18d7", idA.String())
22}
23
24func TestIDMarshalers(t *testing.T) {
25 id, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
26 assert.Nil(t, err)
27
28 idStr, err := json.Marshal(id)
29 assert.Nil(t, err)
30 assert.Equal(t, "\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\"", string(idStr))
31 fmt.Println("idStr", string(idStr))
32
33 var idParsed ID
34 err = json.Unmarshal(idStr, &idParsed)
35 assert.Nil(t, err)
36 assert.Equal(t, id, idParsed)
37
38 var idParsed2 ID
39 err = json.Unmarshal([]byte("\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\""), &idParsed2)
40 assert.Nil(t, err)
41 assert.Equal(t, id, idParsed2)
42}
43
44func TestIDCmp(t *testing.T) {
45 idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
46 assert.Nil(t, err)
47 idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
48 assert.Nil(t, err)
49 assert.True(t, !idA.Cmp(idB))
50}
51
52func TestIDDistance(t *testing.T) {
53 idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
54 assert.Nil(t, err)
55 idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
56 assert.Nil(t, err)
57 assert.Equal(t, "cb55d68e04fa18e5c0131fd236ce80e8ecc1348c", idA.Distance(idB).String())
58}