You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.3 KiB
59 lines
1.3 KiB
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") |
|
}, func() {}); err != nil && err != ErrWaitingProofNotFound { |
|
t.Fatal(err) |
|
} |
|
}
|
|
|