mirror of https://github.com/poanetwork/gecko.git
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package mockdb
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
// Assert that when no members are assigned values, every method returns nil/error
|
|
func TestDefaultError(t *testing.T) {
|
|
db := New()
|
|
|
|
if err := db.Close(); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if _, err := db.Has([]byte{}); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if _, err := db.Get([]byte{}); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if err := db.Put([]byte{}); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if err := db.Delete([]byte{}); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if batch := db.NewBatch(); batch != nil {
|
|
t.Fatal("should have been nil")
|
|
}
|
|
if iterator := db.NewIterator(); iterator != nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if iterator := db.NewIteratorWithPrefix([]byte{}); iterator != nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if iterator := db.NewIteratorWithStart([]byte{}); iterator != nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if iterator := db.NewIteratorWithStartAndPrefix([]byte{}, []byte{}); iterator != nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if err := db.Compact([]byte{}, []byte{}); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
if _, err := db.Stat(); err == nil {
|
|
t.Fatal("should have errored")
|
|
}
|
|
}
|
|
|
|
// Assert that mocking works for Get
|
|
func TestGet(t *testing.T) {
|
|
db := New()
|
|
|
|
// Mock Has()
|
|
db.OnHas = func(b []byte) (bool, error) {
|
|
if bytes.Equal(b, []byte{1, 2, 3}) {
|
|
return true, nil
|
|
}
|
|
return false, errors.New("")
|
|
}
|
|
|
|
if has, err := db.Has([]byte{1, 2, 3}); err != nil {
|
|
t.Fatal("should not have errored")
|
|
} else if has != true {
|
|
t.Fatal("has should be true")
|
|
}
|
|
|
|
if _, err := db.Has([]byte{1, 2}); err == nil {
|
|
t.Fatal("should have have errored")
|
|
}
|
|
}
|