@@ -147,6 +147,8 @@ func TestExecuteStake(t *testing.T) {
147
147
approveErr error
148
148
minSafeRazor * big.Int
149
149
minSafeRazorErr error
150
+ stakerId uint32
151
+ stakerIdErr error
150
152
stakeTxn common.Hash
151
153
stakeErr error
152
154
}
@@ -164,6 +166,7 @@ func TestExecuteStake(t *testing.T) {
164
166
amount : big .NewInt (2000 ),
165
167
balance : big .NewInt (10000 ),
166
168
minSafeRazor : big .NewInt (0 ),
169
+ stakerId : 1 ,
167
170
approveTxn : common .BigToHash (big .NewInt (1 )),
168
171
stakeTxn : common .BigToHash (big .NewInt (2 )),
169
172
},
@@ -179,6 +182,7 @@ func TestExecuteStake(t *testing.T) {
179
182
amount : big .NewInt (2000 ),
180
183
balance : big .NewInt (10000 ),
181
184
minSafeRazor : big .NewInt (0 ),
185
+ stakerId : 1 ,
182
186
approveTxn : common .BigToHash (big .NewInt (1 )),
183
187
stakeTxn : common .BigToHash (big .NewInt (2 )),
184
188
},
@@ -194,6 +198,7 @@ func TestExecuteStake(t *testing.T) {
194
198
amount : big .NewInt (2000 ),
195
199
balance : big .NewInt (10000 ),
196
200
minSafeRazor : big .NewInt (0 ),
201
+ stakerId : 1 ,
197
202
approveTxn : common .BigToHash (big .NewInt (1 )),
198
203
stakeTxn : common .BigToHash (big .NewInt (2 )),
199
204
},
@@ -222,6 +227,7 @@ func TestExecuteStake(t *testing.T) {
222
227
amount : big .NewInt (2000 ),
223
228
balance : big .NewInt (10000 ),
224
229
minSafeRazor : big .NewInt (0 ),
230
+ stakerId : 1 ,
225
231
approveTxn : core .NilHash ,
226
232
approveErr : errors .New ("approve error" ),
227
233
stakeTxn : common .BigToHash (big .NewInt (2 )),
@@ -237,6 +243,7 @@ func TestExecuteStake(t *testing.T) {
237
243
amount : big .NewInt (2000 ),
238
244
balance : big .NewInt (10000 ),
239
245
minSafeRazor : big .NewInt (0 ),
246
+ stakerId : 1 ,
240
247
approveTxn : common .BigToHash (big .NewInt (1 )),
241
248
stakeTxn : core .NilHash ,
242
249
stakeErr : errors .New ("stake error" ),
@@ -251,6 +258,7 @@ func TestExecuteStake(t *testing.T) {
251
258
address : "0x000000000000000000000000000000000000dead" ,
252
259
amount : big .NewInt (2000 ),
253
260
minSafeRazor : big .NewInt (0 ),
261
+ stakerId : 1 ,
254
262
balance : nil ,
255
263
balanceErr : errors .New ("balance error" ),
256
264
approveTxn : common .BigToHash (big .NewInt (1 )),
@@ -259,17 +267,33 @@ func TestExecuteStake(t *testing.T) {
259
267
expectedFatal : true ,
260
268
},
261
269
{
262
- name : "Test 8: When stake value is less than minSafeRazor" ,
270
+ name : "Test 8: When stake value is less than minSafeRazor and staker has never staked " ,
263
271
args : args {
264
272
config : config ,
265
273
password : "test" ,
266
274
address : "0x000000000000000000000000000000000000dead" ,
267
275
amount : big .NewInt (20 ),
268
276
balance : big .NewInt (10000 ),
269
277
minSafeRazor : big .NewInt (100 ),
278
+ stakerId : 0 ,
270
279
},
271
280
expectedFatal : true ,
272
281
},
282
+ {
283
+ name : "Test 9: When stake value is less than minSafeRazor and staker's stake is more than the minSafeRazor already" ,
284
+ args : args {
285
+ config : config ,
286
+ password : "test" ,
287
+ address : "0x000000000000000000000000000000000000dead" ,
288
+ amount : big .NewInt (20 ),
289
+ balance : big .NewInt (10000 ),
290
+ minSafeRazor : big .NewInt (100 ),
291
+ stakerId : 1 ,
292
+ approveTxn : common .BigToHash (big .NewInt (1 )),
293
+ stakeTxn : common .BigToHash (big .NewInt (2 )),
294
+ },
295
+ expectedFatal : false ,
296
+ },
273
297
}
274
298
275
299
defer func () { log .ExitFunc = nil }()
@@ -290,7 +314,7 @@ func TestExecuteStake(t *testing.T) {
290
314
291
315
utilsMock .On ("AssignLogFile" , mock .AnythingOfType ("*pflag.FlagSet" ))
292
316
cmdUtilsMock .On ("GetConfigData" ).Return (tt .args .config , tt .args .configErr )
293
- utilsMock .On ("AssignPassword" ).Return (tt .args .password )
317
+ utilsMock .On ("AssignPassword" , mock . AnythingOfType ( "*pflag.FlagSet" ) ).Return (tt .args .password )
294
318
flagSetUtilsMock .On ("GetStringAddress" , mock .AnythingOfType ("*pflag.FlagSet" )).Return (tt .args .address , tt .args .addressErr )
295
319
utilsMock .On ("ConnectToClient" , mock .AnythingOfType ("string" )).Return (client )
296
320
utilsMock .On ("WaitForBlockCompletion" , mock .AnythingOfType ("*ethclient.Client" ), mock .AnythingOfType ("string" )).Return (nil )
@@ -299,6 +323,7 @@ func TestExecuteStake(t *testing.T) {
299
323
utilsMock .On ("CheckAmountAndBalance" , mock .AnythingOfType ("*big.Int" ), mock .AnythingOfType ("*big.Int" )).Return (tt .args .amount )
300
324
utilsMock .On ("CheckEthBalanceIsZero" , mock .AnythingOfType ("*ethclient.Client" ), mock .AnythingOfType ("string" )).Return ()
301
325
utilsPkgMock .On ("GetMinSafeRazor" , mock .AnythingOfType ("*ethclient.Client" )).Return (tt .args .minSafeRazor , tt .args .minSafeRazorErr )
326
+ utilsMock .On ("GetStakerId" , mock .Anything , mock .Anything ).Return (tt .args .stakerId , tt .args .stakerIdErr )
302
327
cmdUtilsMock .On ("Approve" , mock .Anything ).Return (tt .args .approveTxn , tt .args .approveErr )
303
328
cmdUtilsMock .On ("StakeCoins" , mock .Anything ).Return (tt .args .stakeTxn , tt .args .stakeErr )
304
329
0 commit comments