@@ -447,62 +447,15 @@ mod tests {
447447 use super :: * ;
448448 use codec:: Slicable ;
449449 use keyring:: Keyring ;
450- use { primitives, genesis} ;
451450 use primitives:: block:: Extrinsic as PrimitiveExtrinsic ;
452- use test_runtime:: genesismap:: { GenesisConfig , additional_storage_with_genesis} ;
453- use test_runtime:: { UncheckedTransaction , Transaction } ;
454- use test_runtime;
455-
456- native_executor_instance ! ( Executor , test_runtime:: api:: dispatch, include_bytes!( "../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm" ) ) ;
457-
458- fn genesis_config ( ) -> GenesisConfig {
459- GenesisConfig :: new_simple ( vec ! [
460- Keyring :: Alice . to_raw_public( ) ,
461- Keyring :: Bob . to_raw_public( ) ,
462- Keyring :: Charlie . to_raw_public( )
463- ] , 1000 )
464- }
465-
466- fn prepare_genesis ( ) -> ( primitives:: block:: Header , Vec < ( Vec < u8 > , Vec < u8 > ) > ) {
467- let mut storage = genesis_config ( ) . genesis_map ( ) ;
468- let block = genesis:: construct_genesis_block ( & storage) ;
469- storage. extend ( additional_storage_with_genesis ( & block) ) ;
470- ( primitives:: block:: Header :: decode ( & mut block. header . encode ( ) . as_ref ( ) ) . expect ( "to_vec() always gives a valid serialisation; qed" ) , storage. into_iter ( ) . collect ( ) )
471- }
472-
473- // since we are in the client module we can create falsely justified
474- // headers.
475- // TODO: remove this in favor of custom verification pipelines for the
476- // client
477- fn justify ( header : & block:: Header ) -> bft:: UncheckedJustification {
478- let hash = header. blake2_256 ( ) . into ( ) ;
479- let authorities = vec ! [
480- Keyring :: Alice . into( ) ,
481- Keyring :: Bob . into( ) ,
482- Keyring :: Charlie . into( ) ,
483- ] ;
484-
485- bft:: UncheckedJustification {
486- digest : hash,
487- signatures : authorities. iter ( ) . map ( |key| {
488- let msg = bft:: sign_message (
489- bft:: generic:: Vote :: Commit ( 1 , hash) . into ( ) ,
490- key,
491- header. parent_hash
492- ) ;
493-
494- match msg {
495- bft:: generic:: LocalizedMessage :: Vote ( vote) => vote. signature ,
496- _ => panic ! ( "signing vote leads to signed vote" ) ,
497- }
498- } ) . collect ( ) ,
499- round_number : 1 ,
500- }
501- }
451+ use test_client:: { self , TestClient } ;
452+ use test_client:: client:: BlockOrigin ;
453+ use test_client:: runtime as test_runtime;
454+ use test_client:: runtime:: { UncheckedTransaction , Transaction } ;
502455
503456 #[ test]
504457 fn client_initialises_from_genesis_ok ( ) {
505- let client = new_in_mem ( Executor :: new ( ) , prepare_genesis ) . unwrap ( ) ;
458+ let client = test_client :: new ( ) ;
506459 let genesis_hash = client. block_hash ( 0 ) . unwrap ( ) . unwrap ( ) ;
507460
508461 assert_eq ! ( client. using_environment( || test_runtime:: system:: latest_block_hash( ) ) . unwrap( ) , genesis_hash) ;
@@ -512,15 +465,7 @@ mod tests {
512465
513466 #[ test]
514467 fn authorities_call_works ( ) {
515- let genesis_config = genesis_config ( ) ;
516-
517- let prepare_genesis = || {
518- let mut storage = genesis_config. genesis_map ( ) ;
519- let block = genesis:: construct_genesis_block ( & storage) ;
520- storage. extend ( additional_storage_with_genesis ( & block) ) ;
521- ( primitives:: block:: Header :: decode ( & mut block. header . encode ( ) . as_ref ( ) ) . expect ( "to_vec() always gives a valid serialisation; qed" ) , storage. into_iter ( ) . collect ( ) )
522- } ;
523- let client = new_in_mem ( Executor :: new ( ) , prepare_genesis) . unwrap ( ) ;
468+ let client = test_client:: new ( ) ;
524469
525470 assert_eq ! ( client. info( ) . unwrap( ) . chain. best_number, 0 ) ;
526471 assert_eq ! ( client. authorities_at( & BlockId :: Number ( 0 ) ) . unwrap( ) , vec![
@@ -532,22 +477,11 @@ mod tests {
532477
533478 #[ test]
534479 fn block_builder_works_with_no_transactions ( ) {
535- let genesis_config = genesis_config ( ) ;
536-
537- let prepare_genesis = || {
538- let mut storage = genesis_config. genesis_map ( ) ;
539- let block = genesis:: construct_genesis_block ( & storage) ;
540- storage. extend ( additional_storage_with_genesis ( & block) ) ;
541- ( primitives:: block:: Header :: decode ( & mut block. header . encode ( ) . as_ref ( ) ) . expect ( "to_vec() always gives a valid serialisation; qed" ) , storage. into_iter ( ) . collect ( ) )
542- } ;
543- let client = new_in_mem ( Executor :: new ( ) , prepare_genesis) . unwrap ( ) ;
480+ let client = test_client:: new ( ) ;
544481
545482 let builder = client. new_block ( ) . unwrap ( ) ;
546- let block = builder. bake ( ) . unwrap ( ) ;
547483
548- let justification = justify ( & block. header ) ;
549- let justified = client. check_justification ( block. header , justification) . unwrap ( ) ;
550- client. import_block ( BlockOrigin :: Own , justified, Some ( block. transactions ) ) . unwrap ( ) ;
484+ client. justify_and_import ( BlockOrigin :: Own , builder. bake ( ) . unwrap ( ) ) . unwrap ( ) ;
551485
552486 assert_eq ! ( client. info( ) . unwrap( ) . chain. best_number, 1 ) ;
553487 assert_eq ! ( client. using_environment( || test_runtime:: system:: latest_block_hash( ) ) . unwrap( ) , client. block_hash( 1 ) . unwrap( ) . unwrap( ) ) ;
@@ -565,19 +499,7 @@ mod tests {
565499
566500 #[ test]
567501 fn block_builder_works_with_transactions ( ) {
568- let genesis_config = GenesisConfig :: new_simple ( vec ! [
569- Keyring :: Alice . to_raw_public( ) ,
570- Keyring :: Bob . to_raw_public( ) ,
571- Keyring :: Charlie . to_raw_public( )
572- ] , 1000 ) ;
573-
574- let prepare_genesis = || {
575- let mut storage = genesis_config. genesis_map ( ) ;
576- let block = genesis:: construct_genesis_block ( & storage) ;
577- storage. extend ( additional_storage_with_genesis ( & block) ) ;
578- ( primitives:: block:: Header :: decode ( & mut block. header . encode ( ) . as_ref ( ) ) . expect ( "to_vec() always gives a valid serialisation; qed" ) , storage. into_iter ( ) . collect ( ) )
579- } ;
580- let client = new_in_mem ( Executor :: new ( ) , prepare_genesis) . unwrap ( ) ;
502+ let client = test_client:: new ( ) ;
581503
582504 let mut builder = client. new_block ( ) . unwrap ( ) ;
583505
@@ -587,11 +509,8 @@ mod tests {
587509 amount : 42 ,
588510 nonce : 0
589511 } . signed ( ) ) . unwrap ( ) ;
590- let block = builder. bake ( ) . unwrap ( ) ;
591512
592- let justification = justify ( & block. header ) ;
593- let justified = client. check_justification ( block. header , justification) . unwrap ( ) ;
594- client. import_block ( BlockOrigin :: Own , justified, Some ( block. transactions ) ) . unwrap ( ) ;
513+ client. justify_and_import ( BlockOrigin :: Own , builder. bake ( ) . unwrap ( ) ) . unwrap ( ) ;
595514
596515 assert_eq ! ( client. info( ) . unwrap( ) . chain. best_number, 1 ) ;
597516 assert ! ( client. state_at( & BlockId :: Number ( 1 ) ) . unwrap( ) != client. state_at( & BlockId :: Number ( 0 ) ) . unwrap( ) ) ;
0 commit comments