slowlorisdb/node/node_test.go
node/node_test.goRaw
1package node
2
3import (
4 "io/ioutil"
5 "testing"
6
7 "github.com/arnaucube/slowlorisdb/core"
8 "github.com/arnaucube/slowlorisdb/db"
9 "github.com/stretchr/testify/assert"
10)
11
12func TestNode(t *testing.T) {
13 dir, err := ioutil.TempDir("", "db")
14 assert.Nil(t, err)
15 db, err := db.New(dir)
16 assert.Nil(t, err)
17
18 node, err := NewNode(db, uint64(1))
19 assert.Nil(t, err)
20
21 assert.Equal(t, node.Addr, core.AddressFromPrivK(node.PrivK))
22}
23
24func TestNodeSignature(t *testing.T) {
25 dir, err := ioutil.TempDir("", "db")
26 assert.Nil(t, err)
27 db, err := db.New(dir)
28 assert.Nil(t, err)
29
30 node, err := NewNode(db, uint64(1))
31 assert.Nil(t, err)
32
33 m := []byte("test")
34 sig, err := node.Sign(m)
35 assert.Nil(t, err)
36 pubK := node.PrivK.PublicKey
37 assert.True(t, core.VerifySignature(&pubK, m, *sig))
38}
39
40func TestBlockFromPendingTxs(t *testing.T) {
41 dir, err := ioutil.TempDir("", "db")
42 assert.Nil(t, err)
43 db, err := db.New(dir)
44 assert.Nil(t, err)
45
46 node, err := NewNode(db, uint64(1))
47 assert.Nil(t, err)
48
49 addr0 := core.Address(core.HashBytes([]byte("addr0")))
50 addr1 := core.Address(core.HashBytes([]byte("addr1")))
51 tx := core.NewTx(addr0, addr1, []core.Input{}, []core.Output{})
52 node.AddToPendingTxs(*tx)
53 block, err := node.BlockFromPendingTxs()
54 assert.True(t, core.CheckBlockPoW(block, node.Bc.Difficulty))
55 // TODO add VerifyBlockSignature
56}
57
58// func TestBlockFromPendingTxsIteration(t *testing.T) {
59// dir, err := ioutil.TempDir("", "db")
60// assert.Nil(t, err)
61// db, err := db.New(dir)
62// assert.Nil(t, err)
63//
64// node, err := NewNode(db, uint64(1))
65// assert.Nil(t, err)
66//
67// addr0 := core.Address(core.HashBytes([]byte("addr0")))
68// addr1 := core.Address(core.HashBytes([]byte("addr1")))
69// for i := 0; i < 10; i++ {
70// tx := core.NewTx(addr0, addr1, []core.Input{}, []core.Output{})
71//
72// }
73// }