@@ -31,47 +31,108 @@ func setupBalanceHandlerTest(t *testing.T) {
3131}
3232
3333func TestParseHexAddress (t * testing.T ) {
34- setupBalanceHandlerTest (t )
35-
36- _ , addrs , err := testutil .GeneratePrivKeyAddressPairs (1 )
37- require .NoError (t , err )
38- accAddr := addrs [0 ]
39-
40- // valid address
41- ev := sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , accAddr .String ()))
42- addr , err := parseHexAddress (ev , banktypes .AttributeKeySpender )
43- require .NoError (t , err )
44- require .Equal (t , common .Address (accAddr .Bytes ()), addr )
45-
46- // missing attribute
47- ev = sdk .NewEvent ("bank" )
48- _ , err = parseHexAddress (ev , banktypes .AttributeKeySpender )
49- require .Error (t , err )
50-
51- // invalid address
52- ev = sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , "invalid" ))
53- _ , err = parseHexAddress (ev , banktypes .AttributeKeySpender )
54- require .Error (t , err )
34+ var accAddr sdk.AccAddress
35+
36+ testCases := []struct {
37+ name string
38+ maleate func () sdk.Event
39+ key string
40+ expAddr common.Address
41+ expError bool
42+ }{
43+ {
44+ name : "valid address" ,
45+ maleate : func () sdk.Event {
46+ return sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , accAddr .String ()))
47+ },
48+ key : banktypes .AttributeKeySpender ,
49+ expError : false ,
50+ },
51+ {
52+ name : "missing attribute" ,
53+ maleate : func () sdk.Event {
54+ return sdk .NewEvent ("bank" )
55+ },
56+ key : banktypes .AttributeKeySpender ,
57+ expError : true ,
58+ },
59+ {
60+ name : "invalid address" ,
61+ maleate : func () sdk.Event {
62+ return sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , "invalid" ))
63+ },
64+ key : banktypes .AttributeKeySpender ,
65+ expError : true ,
66+ },
67+ }
68+
69+ for _ , tc := range testCases {
70+ t .Run (tc .name , func (t * testing.T ) {
71+ setupBalanceHandlerTest (t )
72+
73+ _ , addrs , err := testutil .GeneratePrivKeyAddressPairs (1 )
74+ require .NoError (t , err )
75+ accAddr = addrs [0 ]
76+
77+ event := tc .maleate ()
78+
79+ addr , err := parseHexAddress (event , tc .key )
80+ if tc .expError {
81+ require .Error (t , err )
82+ return
83+ }
84+
85+ require .NoError (t , err )
86+ require .Equal (t , common .Address (accAddr .Bytes ()), addr )
87+ })
88+ }
5589}
5690
5791func TestParseAmount (t * testing.T ) {
58- setupBalanceHandlerTest (t )
59-
60- coinStr := sdk .NewCoins (sdk .NewInt64Coin (evmtypes .GetEVMCoinDenom (), 5 )).String ()
61- ev := sdk .NewEvent ("bank" , sdk .NewAttribute (sdk .AttributeKeyAmount , coinStr ))
62- amt , err := parseAmount (ev )
63- require .NoError (t , err )
64- require .True (t , amt .Eq (uint256 .NewInt (5 )))
65-
66- // missing amount
67- ev = sdk .NewEvent ("bank" )
68- _ , err = parseAmount (ev )
69- require .Error (t , err )
70-
71- // invalid coins
72- ev = sdk .NewEvent ("bank" , sdk .NewAttribute (sdk .AttributeKeyAmount , "invalid" ))
73- _ , err = parseAmount (ev )
74- require .Error (t , err )
92+ testCases := []struct {
93+ name string
94+ maleate func () sdk.Event
95+ expAmt * uint256.Int
96+ expError bool
97+ }{
98+ {
99+ name : "valid amount" ,
100+ maleate : func () sdk.Event {
101+ coinStr := sdk .NewCoins (sdk .NewInt64Coin (evmtypes .GetEVMCoinDenom (), 5 )).String ()
102+ return sdk .NewEvent ("bank" , sdk .NewAttribute (sdk .AttributeKeyAmount , coinStr ))
103+ },
104+ expAmt : uint256 .NewInt (5 ),
105+ },
106+ {
107+ name : "missing amount" ,
108+ maleate : func () sdk.Event {
109+ return sdk .NewEvent ("bank" )
110+ },
111+ expError : true ,
112+ },
113+ {
114+ name : "invalid coins" ,
115+ maleate : func () sdk.Event {
116+ return sdk .NewEvent ("bank" , sdk .NewAttribute (sdk .AttributeKeyAmount , "invalid" ))
117+ },
118+ expError : true ,
119+ },
120+ }
121+
122+ for _ , tc := range testCases {
123+ t .Run (tc .name , func (t * testing.T ) {
124+ setupBalanceHandlerTest (t )
125+
126+ amt , err := parseAmount (tc .maleate ())
127+ if tc .expError {
128+ require .Error (t , err )
129+ return
130+ }
131+
132+ require .NoError (t , err )
133+ require .True (t , amt .Eq (tc .expAmt ))
134+ })
135+ }
75136}
76137
77138func TestAfterBalanceChange (t * testing.T ) {
0 commit comments