@@ -615,15 +615,13 @@ pub mod tests {
615
615
use crate :: { MithrilSignerRegisterer , ProtocolParametersStorer , SignerRegistrationRound } ;
616
616
use mithril_common:: chain_observer:: FakeObserver ;
617
617
use mithril_common:: crypto_helper:: {
618
- key_decode_hex,
619
- tests_setup:: { setup_certificate_chain, setup_signers} ,
620
- ProtocolMultiSignature ,
618
+ key_decode_hex, tests_setup:: setup_certificate_chain, ProtocolMultiSignature ,
621
619
} ;
622
620
use mithril_common:: digesters:: DumbImmutableFileObserver ;
623
621
use mithril_common:: entities:: {
624
- Beacon , CertificatePending , Epoch , HexEncodedKey , ProtocolMessage , SignerWithStake ,
625
- StakeDistribution ,
622
+ Beacon , CertificatePending , Epoch , HexEncodedKey , ProtocolMessage , StakeDistribution ,
626
623
} ;
624
+ use mithril_common:: test_utils:: MithrilFixtureBuilder ;
627
625
use mithril_common:: { entities:: ProtocolMessagePartKey , fake_data, store:: StakeStorer } ;
628
626
use mithril_common:: { BeaconProviderImpl , CardanoNetwork } ;
629
627
use std:: collections:: HashMap ;
@@ -696,10 +694,18 @@ pub mod tests {
696
694
697
695
#[ tokio:: test]
698
696
async fn test_update_stake_distribution ( ) {
699
- let ( deps, config) = initialize_dependencies ( ) . await ;
697
+ let ( mut deps, config) = initialize_dependencies ( ) . await ;
698
+ let chain_observer = Arc :: new ( FakeObserver :: default ( ) ) ;
699
+ deps. chain_observer = chain_observer. clone ( ) ;
700
700
let deps = Arc :: new ( deps) ;
701
701
let runner = AggregatorRunner :: new ( config, deps. clone ( ) ) ;
702
702
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
703
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
704
+ let expected = fixture. stake_distribution ( ) ;
705
+
706
+ chain_observer
707
+ . set_signers ( fixture. signers_with_stake ( ) )
708
+ . await ;
703
709
runner
704
710
. update_beacon ( & beacon)
705
711
. await
@@ -709,13 +715,6 @@ pub mod tests {
709
715
. await
710
716
. expect ( "updating stake distribution should not return an error" ) ;
711
717
712
- let current_stake_distribution = deps
713
- . chain_observer
714
- . get_current_stake_distribution ( )
715
- . await
716
- . unwrap ( )
717
- . expect ( "The stake distribution should not be None." ) ;
718
-
719
718
let saved_stake_distribution = deps
720
719
. stake_store
721
720
. get_stakes ( beacon. epoch . offset_to_recording_epoch ( ) )
@@ -728,13 +727,7 @@ pub mod tests {
728
727
)
729
728
} ) ;
730
729
731
- assert_eq ! (
732
- current_stake_distribution. len( ) ,
733
- saved_stake_distribution. len( )
734
- ) ;
735
- for ( party_id, stake) in current_stake_distribution. iter ( ) {
736
- assert_eq ! ( stake, saved_stake_distribution. get( party_id) . unwrap( ) ) ;
737
- }
730
+ assert_eq ! ( expected, saved_stake_distribution) ;
738
731
}
739
732
740
733
#[ tokio:: test]
@@ -815,11 +808,11 @@ pub mod tests {
815
808
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
816
809
runner. update_beacon ( & beacon) . await . unwrap ( ) ;
817
810
818
- let signers = fake_data :: signers_with_stakes ( 5 ) ;
819
- let current_signers = signers [ 1 ..3 ] . to_vec ( ) ;
820
- let next_signers = signers [ 2 ..5 ] . to_vec ( ) ;
811
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
812
+ let current_signers = fixture . signers_with_stake ( ) [ 1 ..3 ] . to_vec ( ) ;
813
+ let next_signers = fixture . signers_with_stake ( ) [ 2 ..5 ] . to_vec ( ) ;
821
814
let protocol_parameters = fake_data:: protocol_parameters ( ) ;
822
- deps. simulate_genesis (
815
+ deps. prepare_for_genesis (
823
816
current_signers. clone ( ) ,
824
817
next_signers. clone ( ) ,
825
818
& protocol_parameters. clone ( ) ,
@@ -853,17 +846,12 @@ pub mod tests {
853
846
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
854
847
runner. update_beacon ( & beacon) . await . unwrap ( ) ;
855
848
856
- let protocol_parameters = fake_data:: protocol_parameters ( ) ;
857
- let signers = setup_signers ( 5 , & protocol_parameters. clone ( ) . into ( ) )
858
- . into_iter ( )
859
- . map ( |s| s. 0 )
860
- . collect :: < Vec < SignerWithStake > > ( ) ;
861
- let current_signers = signers[ 1 ..3 ] . to_vec ( ) ;
862
- let next_signers = signers[ 2 ..5 ] . to_vec ( ) ;
863
- deps. simulate_genesis (
864
- current_signers. clone ( ) ,
865
- next_signers. clone ( ) ,
866
- & protocol_parameters. clone ( ) ,
849
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
850
+
851
+ deps. prepare_for_genesis (
852
+ fixture. signers_with_stake ( ) ,
853
+ fixture. signers_with_stake ( ) ,
854
+ & fixture. protocol_parameters ( ) ,
867
855
)
868
856
. await ;
869
857
@@ -902,7 +890,7 @@ pub mod tests {
902
890
903
891
let mut expected = WorkingCertificate :: from_pending_certificate (
904
892
& certificate_pending,
905
- & current_signers ,
893
+ & fixture . signers_with_stake ( ) ,
906
894
& message,
907
895
& aggregate_verification_key,
908
896
& sut. initiated_at ,
@@ -956,18 +944,15 @@ pub mod tests {
956
944
let ( deps, config) = initialize_dependencies ( ) . await ;
957
945
let deps = Arc :: new ( deps) ;
958
946
let runner = AggregatorRunner :: new ( config, deps. clone ( ) ) ;
959
- let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
960
947
let digest = "1+2+3+4=10" . to_string ( ) ;
961
- runner. update_beacon ( & beacon) . await . unwrap ( ) ;
962
- for epoch in [
963
- beacon. epoch . offset_to_signer_retrieval_epoch ( ) . unwrap ( ) ,
964
- beacon. epoch . offset_to_next_signer_retrieval_epoch ( ) ,
965
- ] {
966
- deps. protocol_parameters_store
967
- . save_protocol_parameters ( epoch, fake_data:: protocol_parameters ( ) )
968
- . await
969
- . unwrap ( ) ;
970
- }
948
+ runner. update_beacon ( & fake_data:: beacon ( ) ) . await . unwrap ( ) ;
949
+ let fixture = MithrilFixtureBuilder :: default ( ) . build ( ) ;
950
+ deps. prepare_for_genesis (
951
+ fixture. signers_with_stake ( ) ,
952
+ fixture. signers_with_stake ( ) ,
953
+ & fixture. protocol_parameters ( ) ,
954
+ )
955
+ . await ;
971
956
972
957
runner
973
958
. update_message_in_multisigner ( digest)
@@ -1061,15 +1046,8 @@ pub mod tests {
1061
1046
. expect_get_multi_signature ( )
1062
1047
. return_once ( move || Ok ( Some ( multi_signature) ) ) ;
1063
1048
deps. multi_signer = Arc :: new ( RwLock :: new ( mock_multi_signer) ) ;
1064
- let certificate_store = deps. certificate_store . clone ( ) ;
1049
+ deps. init_state_from_chain ( & certificate_chain , vec ! [ ] ) . await ;
1065
1050
let runner = AggregatorRunner :: new ( config, Arc :: new ( deps) ) ;
1066
- for certificate in certificate_chain[ 1 ..] . iter ( ) . rev ( ) {
1067
- certificate_store
1068
- . as_ref ( )
1069
- . save ( certificate. to_owned ( ) )
1070
- . await
1071
- . expect ( "save certificate to store should not fail" ) ;
1072
- }
1073
1051
1074
1052
let certificate = runner
1075
1053
. create_and_save_certificate ( & working_certificate)
0 commit comments