OSDN Git Service

update master (#487)
[bytom/bytom-spv.git] / asset / asset_test.go
similarity index 50%
rename from blockchain/assets_test.go
rename to asset/asset_test.go
index bb9cb90..375c12c 100644 (file)
@@ -1,4 +1,4 @@
-package blockchain
+package asset
 
 import (
        "context"
@@ -9,14 +9,50 @@ import (
 
        dbm "github.com/tendermint/tmlibs/db"
 
-       "github.com/bytom/blockchain/asset"
-       "github.com/bytom/blockchain/txdb"
        "github.com/bytom/crypto/ed25519/chainkd"
+       "github.com/bytom/database/leveldb"
        "github.com/bytom/protocol"
        "github.com/bytom/protocol/bc"
        "github.com/bytom/testutil"
 )
 
+func TestDefineAsset(t *testing.T) {
+       ctx := context.Background()
+       reg := mockNewRegistry(t)
+       asset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, "asset-alias", nil)
+       if err != nil {
+               testutil.FatalErr(t, err)
+       }
+
+       found, err := reg.FindByID(ctx, &asset.AssetID)
+       if err != nil {
+               t.Errorf("unexpected error %v", err)
+       }
+
+       if !testutil.DeepEqual(asset, found) {
+               t.Errorf("expected asset %v to be recorded as %v", asset, found)
+       }
+}
+
+func TestFindAssetByID(t *testing.T) {
+       ctx := context.Background()
+       reg := mockNewRegistry(t)
+       keys := []chainkd.XPub{testutil.TestXPub}
+       asset, err := reg.Define(keys, 1, nil, "", nil)
+       if err != nil {
+               testutil.FatalErr(t, err)
+
+       }
+       found, err := reg.FindByID(ctx, &asset.AssetID)
+       if err != nil {
+               testutil.FatalErr(t, err)
+       }
+
+       if !testutil.DeepEqual(asset, found) {
+               t.Errorf("expected %v and %v to match", asset, found)
+       }
+}
+
 func TestUpdateAssetTags(t *testing.T) {
        dirPath, err := ioutil.TempDir(".", "")
        if err != nil {
@@ -27,14 +63,14 @@ func TestUpdateAssetTags(t *testing.T) {
        testDB := dbm.NewDB("testdb", "leveldb", "temp")
        defer os.RemoveAll("temp")
 
-       store := txdb.NewStore(testDB)
+       store := leveldb.NewStore(testDB)
        txPool := protocol.NewTxPool()
        chain, err := protocol.NewChain(bc.Hash{}, store, txPool)
        if err != nil {
                t.Fatal(err)
        }
 
-       reg := asset.NewRegistry(testDB, chain)
+       reg := NewRegistry(testDB, chain)
        ctx := context.Background()
 
        asset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, "asset-alias",
@@ -83,3 +119,31 @@ func TestUpdateAssetTags(t *testing.T) {
                t.Fatalf("tags:\ngot:  %v\nwant: %v", gotTags, wantTags)
        }
 }
+
+func mockChain(testDB dbm.DB) (*protocol.Chain, error) {
+       store := leveldb.NewStore(testDB)
+       txPool := protocol.NewTxPool()
+       chain, err := protocol.NewChain(bc.Hash{}, store, txPool)
+       if err != nil {
+               return nil, err
+       }
+       return chain, nil
+}
+
+func mockNewRegistry(t *testing.T) *Registry {
+       dirPath, err := ioutil.TempDir(".", "")
+       if err != nil {
+               t.Fatal(err)
+       }
+       defer os.RemoveAll(dirPath)
+
+       testDB := dbm.NewDB("testdb", "leveldb", "temp")
+       defer os.RemoveAll("temp")
+
+       chain, err := mockChain(testDB)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       return NewRegistry(testDB, chain)
+}