aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/storage/mru/testutil.go
diff options
context:
space:
mode:
Diffstat (limited to 'swarm/storage/mru/testutil.go')
-rw-r--r--swarm/storage/mru/testutil.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/swarm/storage/mru/testutil.go b/swarm/storage/mru/testutil.go
new file mode 100644
index 000000000..751f51af3
--- /dev/null
+++ b/swarm/storage/mru/testutil.go
@@ -0,0 +1,56 @@
+// Copyright 2018 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
+
+package mru
+
+import (
+ "fmt"
+ "path/filepath"
+
+ "github.com/ethereum/go-ethereum/swarm/storage"
+)
+
+const (
+ testDbDirName = "mru"
+)
+
+type TestHandler struct {
+ *Handler
+}
+
+func (t *TestHandler) Close() {
+ t.chunkStore.Close()
+}
+
+// NewTestHandler creates Handler object to be used for testing purposes.
+func NewTestHandler(datadir string, params *HandlerParams) (*TestHandler, error) {
+ path := filepath.Join(datadir, testDbDirName)
+ rh, err := NewHandler(params)
+ if err != nil {
+ return nil, fmt.Errorf("resource handler create fail: %v", err)
+ }
+ localstoreparams := storage.NewDefaultLocalStoreParams()
+ localstoreparams.Init(path)
+ localStore, err := storage.NewLocalStore(localstoreparams, nil)
+ if err != nil {
+ return nil, fmt.Errorf("localstore create fail, path %s: %v", path, err)
+ }
+ localStore.Validators = append(localStore.Validators, storage.NewContentAddressValidator(storage.MakeHashFunc(resourceHashAlgorithm)))
+ localStore.Validators = append(localStore.Validators, rh)
+ netStore := storage.NewNetStore(localStore, nil)
+ rh.SetStore(netStore)
+ return &TestHandler{rh}, nil
+}