X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=asset%2Fasset_test.go;fp=asset%2Fasset_test.go;h=0000000000000000000000000000000000000000;hp=33b1445e890ff545e6c88eb415d52e15b7e5bca4;hb=d09b7a78d44dc259725902b8141cdba0d716b121;hpb=ee01d543fdfe1fd0a4d548965c66f7923ea7b062 diff --git a/asset/asset_test.go b/asset/asset_test.go deleted file mode 100644 index 33b1445e..00000000 --- a/asset/asset_test.go +++ /dev/null @@ -1,192 +0,0 @@ -package asset - -import ( - "context" - "io/ioutil" - "os" - "reflect" - "sort" - "strings" - "testing" - - dbm "github.com/tendermint/tmlibs/db" - - "github.com/vapor/common" - "github.com/vapor/config" - "github.com/vapor/consensus" - "github.com/vapor/crypto/ed25519/chainkd" - "github.com/vapor/database/leveldb" - "github.com/vapor/protocol" - "github.com/vapor/testutil" -) - -func TestDefineAssetWithLowercase(t *testing.T) { - reg := mockNewRegistry(t) - alias := "lower" - asset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, alias, nil) - if err != nil { - t.Fatal(err) - } - if *asset.Alias != strings.ToUpper(alias) { - t.Fatal("created asset alias should be uppercase") - } -} - -func TestDefineAssetWithSpaceTrimed(t *testing.T) { - reg := mockNewRegistry(t) - alias := " WITH SPACE " - asset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, alias, nil) - if err != nil { - t.Fatal(err) - } - if *asset.Alias != strings.TrimSpace(alias) { - t.Fatal("created asset alias should be uppercase") - } -} - -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 TestDefineBtmAsset(t *testing.T) { - reg := mockNewRegistry(t) - _, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, consensus.BTMAlias, nil) - if err == nil { - testutil.FatalErr(t, err) - } -} - -func TestFindAssetByID(t *testing.T) { - ctx := context.Background() - reg := mockNewRegistry(t) - keys := []chainkd.XPub{testutil.TestXPub} - asset, err := reg.Define(keys, 1, nil, "TESTASSET", 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 TestUpdateAssetAlias(t *testing.T) { - reg := mockNewRegistry(t) - - oldAlias := "OLD_ALIAS" - newAlias := "NEW_ALIAS" - - asset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, oldAlias, nil) - if err != nil { - testutil.FatalErr(t, err) - } - - if reg.UpdateAssetAlias(asset.AssetID.String(), newAlias) != nil { - testutil.FatalErr(t, err) - } - - asset1, err := reg.FindByAlias(newAlias) - if err != nil { - testutil.FatalErr(t, err) - } - - gotAlias := *asset1.Alias - if !reflect.DeepEqual(gotAlias, newAlias) { - t.Fatalf("alias:\ngot: %v\nwant: %v", gotAlias, newAlias) - } -} - -type SortByAssetsAlias []*Asset - -func (a SortByAssetsAlias) Len() int { return len(a) } -func (a SortByAssetsAlias) Less(i, j int) bool { - return strings.Compare(*a[i].Alias, *a[j].Alias) <= 0 -} -func (a SortByAssetsAlias) Swap(i, j int) { a[i], a[j] = a[j], a[i] } - -func TestListAssets(t *testing.T) { - reg := mockNewRegistry(t) - - firstAlias := "FIRST_ALIAS" - secondAlias := "SECOND_ALIAS" - - firstAsset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, firstAlias, nil) - if err != nil { - testutil.FatalErr(t, err) - } - - secondAsset, err := reg.Define([]chainkd.XPub{testutil.TestXPub}, 1, nil, secondAlias, nil) - if err != nil { - testutil.FatalErr(t, err) - } - - wantAssets := []*Asset{DefaultNativeAsset, firstAsset, secondAsset} - - gotAssets, err := reg.ListAssets("") - if err != nil { - testutil.FatalErr(t, err) - } - sort.Sort(SortByAssetsAlias(wantAssets)) - sort.Sort(SortByAssetsAlias(gotAssets)) - if !testutil.DeepEqual(gotAssets, wantAssets) { - t.Fatalf("got:\ngot: %v\nwant: %v", gotAssets, wantAssets) - } -} - -func mockChain(testDB dbm.DB) (*protocol.Chain, error) { - store := leveldb.NewStore(testDB) - txPool := protocol.NewTxPool(store) - chain, err := protocol.NewChain(store, txPool) - if err != nil { - return nil, err - } - return chain, nil -} - -func mockNewRegistry(t *testing.T) *Registry { - config.CommonConfig = config.DefaultConfig() - consensus.SoloNetParams.Signer = "78673764e0ba91a4c5ba9ec0c8c23c69e3d73bf27970e05e0a977e81e13bde475264d3b177a96646bc0ce517ae7fd63504c183ab6d330dea184331a4cf5912d5" - config.CommonConfig.Consensus.SelfVoteSigners = append(config.CommonConfig.Consensus.SelfVoteSigners, "vsm1qkm743xmgnvh84pmjchq2s4tnfpgu9ae2f9slep") - config.CommonConfig.Consensus.XPrv = "a8e281b615809046698fb0b0f2804a36d824d48fa443350f10f1b80649d39e5f1e85cf9855548915e36137345910606cbc8e7dd8497c831dce899ee6ac112445" - for _, v := range config.CommonConfig.Consensus.SelfVoteSigners { - address, err := common.DecodeAddress(v, &consensus.SoloNetParams) - if err != nil { - t.Fatal(err) - } - config.CommonConfig.Consensus.Signers = append(config.CommonConfig.Consensus.Signers, address) - } - 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) -}