mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-23 19:37:46 +08:00
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package blockstore
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore"
|
|
ds_sync "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore/sync"
|
|
blocks "github.com/jbenet/go-ipfs/blocks"
|
|
u "github.com/jbenet/go-ipfs/util"
|
|
)
|
|
|
|
// TODO(brian): TestGetReturnsNil
|
|
|
|
func TestGetWhenKeyNotPresent(t *testing.T) {
|
|
bs := NewBlockstore(ds_sync.MutexWrap(ds.NewMapDatastore()))
|
|
_, err := bs.Get(u.Key("not present"))
|
|
|
|
if err != nil {
|
|
t.Log("As expected, block is not present")
|
|
return
|
|
}
|
|
t.Fail()
|
|
}
|
|
|
|
func TestPutThenGetBlock(t *testing.T) {
|
|
bs := NewBlockstore(ds_sync.MutexWrap(ds.NewMapDatastore()))
|
|
block := blocks.NewBlock([]byte("some data"))
|
|
|
|
err := bs.Put(block)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
blockFromBlockstore, err := bs.Get(block.Key())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(block.Data, blockFromBlockstore.Data) {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func TestValueTypeMismatch(t *testing.T) {
|
|
block := blocks.NewBlock([]byte("some data"))
|
|
|
|
datastore := ds.NewMapDatastore()
|
|
datastore.Put(block.Key().DsKey(), "data that isn't a block!")
|
|
|
|
blockstore := NewBlockstore(ds_sync.MutexWrap(datastore))
|
|
|
|
_, err := blockstore.Get(block.Key())
|
|
if err != ValueTypeMismatch {
|
|
t.Fatal(err)
|
|
}
|
|
}
|