File tree 1 file changed +39
-0
lines changed
chain-impl-mockchain/src/leadership/genesis
1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -295,6 +295,45 @@ mod tests {
295
295
) ;
296
296
}
297
297
298
+ #[ test]
299
+ pub fn test_leader_with_invalid_pool_id ( ) {
300
+ // Arrange
301
+ let leader_election_parameters = LeaderElectionParameters :: new ( ) ;
302
+
303
+ let cb = ConfigBuilder :: new ( )
304
+ . with_slots_per_epoch ( leader_election_parameters. slots_per_epoch )
305
+ . with_active_slots_coeff ( leader_election_parameters. active_slots_coeff_as_milli ( ) ) ;
306
+
307
+ let mut ledger = LedgerBuilder :: from_config ( cb)
308
+ . build ( )
309
+ . expect ( "cannot build test ledger" )
310
+ . ledger ;
311
+
312
+ let pools: HashMap < _ , _ > = std:: iter:: from_fn ( || {
313
+ let ( pool_id, pool_vrf_private_key) = make_pool ( & mut ledger) ;
314
+ Some ( (
315
+ pool_id,
316
+ ( pool_vrf_private_key, 0 , leader_election_parameters. value ) ,
317
+ ) )
318
+ } )
319
+ . take ( leader_election_parameters. pools_count )
320
+ . collect ( ) ;
321
+
322
+ let selection = make_leadership_with_pools ( & ledger, & pools) ;
323
+
324
+ let ( invalid_pool_id, invalid_pool_vrf_private_key) = make_pool ( & mut ledger) ;
325
+
326
+ // Act
327
+ let invalid_leader = selection. leader (
328
+ & invalid_pool_id,
329
+ & invalid_pool_vrf_private_key,
330
+ ledger. date ( ) ,
331
+ ) ;
332
+
333
+ // Assert
334
+ assert ! ( invalid_leader. unwrap( ) . is_none( ) ) ;
335
+ }
336
+
298
337
#[ test]
299
338
pub fn test_leader_election_is_consistent_with_stake_distribution ( ) {
300
339
let leader_election_parameters = LeaderElectionParameters :: new ( ) ;
You can’t perform that action at this time.
0 commit comments