func TestInitialization(t *testing.T) { ctx := context.Background() id := testIdentity good := []*config.Config{ { Identity: id, Datastore: config.Datastore{ Type: "memory", }, Addresses: config.Addresses{ Swarm: []string{"/ip4/0.0.0.0/tcp/4001"}, API: "/ip4/127.0.0.1/tcp/8000", }, }, { Identity: id, Datastore: config.Datastore{ Type: "leveldb", Path: ".testdb", }, Addresses: config.Addresses{ Swarm: []string{"/ip4/0.0.0.0/tcp/4001"}, API: "/ip4/127.0.0.1/tcp/8000", }, }, } bad := []*config.Config{ {}, {Datastore: config.Datastore{Type: "memory"}}, } for i, c := range good { r := &repo.Mock{ C: *c, D: testutil.ThreadSafeCloserMapDatastore(), } n, err := NewNode(ctx, &BuildCfg{Repo: r}) if n == nil || err != nil { t.Error("Should have constructed.", i, err) } } for i, c := range bad { r := &repo.Mock{ C: *c, D: testutil.ThreadSafeCloserMapDatastore(), } n, err := NewNode(ctx, &BuildCfg{Repo: r}) if n != nil || err == nil { t.Error("Should have failed to construct.", i) } } }
func newNodeWithMockNamesys(ns mockNamesys) (*core.IpfsNode, error) { c := config.Config{ Identity: config.Identity{ PeerID: "Qmfoo", // required by offline node }, } r := &repo.Mock{ C: c, D: testutil.ThreadSafeCloserMapDatastore(), } n, err := core.NewNode(context.Background(), &core.BuildCfg{Repo: r}) if err != nil { return nil, err } n.Namesys = ns return n, nil }
func TestAddRecursive(t *testing.T) { here, err := os.Getwd() if err != nil { t.Fatal(err) } r := &repo.Mock{ C: config.Config{ Identity: config.Identity{ PeerID: "Qmfoo", // required by offline node }, }, D: testutil.ThreadSafeCloserMapDatastore(), } node, err := core.NewNode(context.Background(), &core.BuildCfg{Repo: r}) if err != nil { t.Fatal(err) } if k, err := AddR(node, path.Join(here, "test_data")); err != nil { t.Fatal(err) } else if k != "QmWCCga8AbTyfAQ7pTnGT6JgmRMAB3Qp8ZmTEFi5q5o8jC" { t.Fatal("keys do not match") } }