github.com/Finschia/finschia-sdk@v0.48.1/x/bank/legacy/v043/json_test.go (about) 1 package v043_test 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/Finschia/finschia-sdk/client" 10 "github.com/Finschia/finschia-sdk/simapp" 11 sdk "github.com/Finschia/finschia-sdk/types" 12 v043bank "github.com/Finschia/finschia-sdk/x/bank/legacy/v043" 13 "github.com/Finschia/finschia-sdk/x/bank/types" 14 ) 15 16 func TestMigrateJSON(t *testing.T) { 17 encodingConfig := simapp.MakeTestEncodingConfig() 18 clientCtx := client.Context{}. 19 WithInterfaceRegistry(encodingConfig.InterfaceRegistry). 20 WithTxConfig(encodingConfig.TxConfig). 21 WithCodec(encodingConfig.Marshaler) 22 23 voter, err := sdk.AccAddressFromBech32("link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl") 24 require.NoError(t, err) 25 bankGenState := &types.GenesisState{ 26 Balances: []types.Balance{ 27 { 28 Address: voter.String(), 29 Coins: sdk.Coins{ 30 sdk.NewCoin("foo", sdk.NewInt(10)), 31 sdk.NewCoin("bar", sdk.NewInt(20)), 32 sdk.NewCoin("foobar", sdk.NewInt(0)), 33 }, 34 }, 35 }, 36 Supply: sdk.Coins{ 37 sdk.NewCoin("foo", sdk.NewInt(10)), 38 sdk.NewCoin("bar", sdk.NewInt(20)), 39 sdk.NewCoin("foobar", sdk.NewInt(0)), 40 sdk.NewCoin("barfoo", sdk.NewInt(0)), 41 }, 42 } 43 44 migrated := v043bank.MigrateJSON(bankGenState) 45 46 bz, err := clientCtx.Codec.MarshalJSON(migrated) 47 require.NoError(t, err) 48 49 // Indent the JSON bz correctly. 50 var jsonObj map[string]interface{} 51 err = json.Unmarshal(bz, &jsonObj) 52 require.NoError(t, err) 53 indentedBz, err := json.MarshalIndent(jsonObj, "", "\t") 54 require.NoError(t, err) 55 56 // Make sure about: 57 // - zero coin balances pruned. 58 // - zero supply denoms pruned. 59 expected := `{ 60 "balances": [ 61 { 62 "address": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl", 63 "coins": [ 64 { 65 "amount": "20", 66 "denom": "bar" 67 }, 68 { 69 "amount": "10", 70 "denom": "foo" 71 } 72 ] 73 } 74 ], 75 "denom_metadata": [], 76 "params": { 77 "default_send_enabled": false, 78 "send_enabled": [] 79 }, 80 "supply": [ 81 { 82 "amount": "20", 83 "denom": "bar" 84 }, 85 { 86 "amount": "10", 87 "denom": "foo" 88 } 89 ] 90 }` 91 92 require.Equal(t, expected, string(indentedBz)) 93 }