@cryptotaxi247 / kubo / commits / 5423a0089

create test node and make first ipns test pass

Jeromy committed Oct 4, 2014 at 08:00 UTC 5423a008942a00be40259b7bf6c522d94cc432a7
2 files changed +57 -1
fuse/ipns/ipns_test.go
+8 -1
@@ -6,6 +6,7 @@ import (
6 "testing"
7
8 fstest "github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs/fstestutil"
9 + testutil "github.com/jbenet/go-ipfs/util/testutil"
10 )
11
12 func randBytes(size int) []byte {
@@ -15,7 +16,12 @@ func randBytes(size int) []byte {
16 }
17
18 func TestIpnsBasicIO(t *testing.T) {
18 - fs, err := NewIpns(nil, "")
19 + localnode, err := testutil.NewMockNode()
20 + if err != nil {
21 + t.Fatal(err)
22 + }
23 +
24 + fs, err := NewIpns(localnode, "")
25 if err != nil {
26 t.Fatal(err)
27 }
@@ -59,4 +65,5 @@ func TestIpnsBasicIO(t *testing.T) {
65 }
66
67 fi.Close()
68 +
69 }
util/testutil/node.go new
+49
@@ -0,0 +1,49 @@
1 +package testutil
2 +
3 +import (
4 + ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go"
5 + syncds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go/sync"
6 + bs "github.com/jbenet/go-ipfs/blockservice"
7 + core "github.com/jbenet/go-ipfs/core"
8 + ci "github.com/jbenet/go-ipfs/crypto"
9 + mdag "github.com/jbenet/go-ipfs/merkledag"
10 + nsys "github.com/jbenet/go-ipfs/namesys"
11 + "github.com/jbenet/go-ipfs/peer"
12 + mdht "github.com/jbenet/go-ipfs/routing/mock"
13 +)
14 +
15 +var _ = core.IpfsNode{}
16 +
17 +func NewMockNode() (*core.IpfsNode, error) {
18 + nd := new(core.IpfsNode)
19 +
20 + //Generate Identity
21 + nd.Identity = &peer.Peer{ID: []byte("TESTING")}
22 + pk, sk, err := ci.GenerateKeyPair(ci.RSA, 1024)
23 + if err != nil {
24 + return nil, err
25 + }
26 + nd.Identity.PrivKey = pk
27 + nd.Identity.PubKey = sk
28 +
29 + // Temp Datastore
30 + dstore := ds.NewMapDatastore()
31 + nd.Datastore = syncds.MutexWrap(dstore)
32 +
33 + // Routing
34 + dht := mdht.NewMockRouter(nd.Identity, nd.Datastore)
35 +
36 + // Bitswap
37 + //??
38 +
39 + bserv, err := bs.NewBlockService(nd.Datastore, nil)
40 + if err != nil {
41 + return nil, err
42 + }
43 +
44 + dserv := &mdag.DAGService{bserv}
45 +
46 + // Namespace resolver
47 + nd.Namesys = nsys.NewMasterResolver(dht, dserv)
48 + return nd, nil
49 +}