mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-20 02:27:21 +01:00
cbce8e8872
This commit moves makeTestDB to db.go and exports it so that we'll be able to use this function in other unit tests to make them testable with etcd if needed.
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package channeldb
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"reflect"
|
|
|
|
"github.com/go-errors/errors"
|
|
"github.com/lightningnetwork/lnd/lnwire"
|
|
)
|
|
|
|
// TestWaitingProofStore tests add/get/remove functions of the waiting proof
|
|
// storage.
|
|
func TestWaitingProofStore(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
db, cleanup, err := MakeTestDB()
|
|
if err != nil {
|
|
t.Fatalf("failed to make test database: %s", err)
|
|
}
|
|
defer cleanup()
|
|
|
|
proof1 := NewWaitingProof(true, &lnwire.AnnounceSignatures{
|
|
NodeSignature: wireSig,
|
|
BitcoinSignature: wireSig,
|
|
})
|
|
|
|
store, err := NewWaitingProofStore(db)
|
|
if err != nil {
|
|
t.Fatalf("unable to create the waiting proofs storage: %v",
|
|
err)
|
|
}
|
|
|
|
if err := store.Add(proof1); err != nil {
|
|
t.Fatalf("unable add proof to storage: %v", err)
|
|
}
|
|
|
|
proof2, err := store.Get(proof1.Key())
|
|
if err != nil {
|
|
t.Fatalf("unable retrieve proof from storage: %v", err)
|
|
}
|
|
if !reflect.DeepEqual(proof1, proof2) {
|
|
t.Fatal("wrong proof retrieved")
|
|
}
|
|
|
|
if _, err := store.Get(proof1.OppositeKey()); err != ErrWaitingProofNotFound {
|
|
t.Fatalf("proof shouldn't be found: %v", err)
|
|
}
|
|
|
|
if err := store.Remove(proof1.Key()); err != nil {
|
|
t.Fatalf("unable remove proof from storage: %v", err)
|
|
}
|
|
|
|
if err := store.ForAll(func(proof *WaitingProof) error {
|
|
return errors.New("storage should be empty")
|
|
}); err != nil && err != ErrWaitingProofNotFound {
|
|
t.Fatal(err)
|
|
}
|
|
}
|