OSDN Git Service

add TestDeleteUnconfirmedTransaction
authorChengcheng Zhang <943420582@qq.com>
Thu, 18 Jul 2019 06:35:21 +0000 (14:35 +0800)
committerChengcheng Zhang <943420582@qq.com>
Thu, 18 Jul 2019 06:35:21 +0000 (14:35 +0800)
database/wallet_store_test.go

index 7777d81..09b9a95 100644 (file)
@@ -8,6 +8,7 @@ import (
 
        acc "github.com/vapor/account"
        "github.com/vapor/blockchain/pseudohsm"
+       "github.com/vapor/blockchain/query"
        "github.com/vapor/crypto/ed25519/chainkd"
        dbm "github.com/vapor/database/leveldb"
        "github.com/vapor/protocol/bc"
@@ -305,3 +306,49 @@ func TestGetWalletInfo(t *testing.T) {
                os.RemoveAll("temp")
        }
 }
+
+func TestDeleteUnconfirmedTransaction(t *testing.T) {
+       cases := []struct {
+               tx *query.AnnotatedTx
+       }{
+               {
+                       tx: &query.AnnotatedTx{},
+               },
+       }
+
+       for i, c := range cases {
+               testDB := dbm.NewDB("testdb", "leveldb", "temp")
+               walletStore := NewWalletStore(testDB)
+               ws := walletStore.InitBatch()
+               if err := ws.SetUnconfirmedTransaction(c.tx.ID.String(), c.tx); err != nil {
+                       t.Fatal(err)
+               }
+
+               if err := ws.CommitBatch(); err != nil {
+                       t.Fatal(err)
+               }
+
+               gotTx, err := ws.GetUnconfirmedTransaction(c.tx.ID.String())
+               if err != nil {
+                       t.Fatal(err)
+               }
+
+               if !testutil.DeepEqual(gotTx, c.tx) {
+                       t.Errorf("case %v: got unconfirmed transaction, got: %v, want: %v.", i, gotTx, c.tx)
+               }
+
+               ws = walletStore.InitBatch()
+               ws.DeleteUnconfirmedTransaction(c.tx.ID.String())
+               if err := ws.CommitBatch(); err != nil {
+                       t.Fatal(err)
+               }
+
+               gotTx, err = ws.GetUnconfirmedTransaction(c.tx.ID.String())
+               if err == nil {
+                       t.Errorf("case %v: got state should fail.", i)
+               }
+
+               testDB.Close()
+               os.RemoveAll("temp")
+       }
+}