@@ -615,16 +615,16 @@ 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 ,
623
+ } ;
624
+ use mithril_common:: test_utils:: MithrilFixtureBuilder ;
625
+ use mithril_common:: {
626
+ entities:: ProtocolMessagePartKey , store:: StakeStorer , test_utils:: fake_data,
626
627
} ;
627
- use mithril_common:: { entities:: ProtocolMessagePartKey , fake_data, store:: StakeStorer } ;
628
628
use mithril_common:: { BeaconProviderImpl , CardanoNetwork } ;
629
629
use std:: collections:: HashMap ;
630
630
use std:: path:: Path ;
@@ -696,10 +696,18 @@ pub mod tests {
696
696
697
697
#[ tokio:: test]
698
698
async fn test_update_stake_distribution ( ) {
699
- let ( deps, config) = initialize_dependencies ( ) . await ;
699
+ let ( mut deps, config) = initialize_dependencies ( ) . await ;
700
+ let chain_observer = Arc :: new ( FakeObserver :: default ( ) ) ;
701
+ deps. chain_observer = chain_observer. clone ( ) ;
700
702
let deps = Arc :: new ( deps) ;
701
703
let runner = AggregatorRunner :: new ( config, deps. clone ( ) ) ;
702
704
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
705
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
706
+ let expected = fixture. stake_distribution ( ) ;
707
+
708
+ chain_observer
709
+ . set_signers ( fixture. signers_with_stake ( ) )
710
+ . await ;
703
711
runner
704
712
. update_beacon ( & beacon)
705
713
. await
@@ -709,13 +717,6 @@ pub mod tests {
709
717
. await
710
718
. expect ( "updating stake distribution should not return an error" ) ;
711
719
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
720
let saved_stake_distribution = deps
720
721
. stake_store
721
722
. get_stakes ( beacon. epoch . offset_to_recording_epoch ( ) )
@@ -728,13 +729,7 @@ pub mod tests {
728
729
)
729
730
} ) ;
730
731
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
- }
732
+ assert_eq ! ( expected, saved_stake_distribution) ;
738
733
}
739
734
740
735
#[ tokio:: test]
@@ -815,11 +810,11 @@ pub mod tests {
815
810
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
816
811
runner. update_beacon ( & beacon) . await . unwrap ( ) ;
817
812
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 ( ) ;
813
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
814
+ let current_signers = fixture . signers_with_stake ( ) [ 1 ..3 ] . to_vec ( ) ;
815
+ let next_signers = fixture . signers_with_stake ( ) [ 2 ..5 ] . to_vec ( ) ;
821
816
let protocol_parameters = fake_data:: protocol_parameters ( ) ;
822
- deps. simulate_genesis (
817
+ deps. prepare_for_genesis (
823
818
current_signers. clone ( ) ,
824
819
next_signers. clone ( ) ,
825
820
& protocol_parameters. clone ( ) ,
@@ -853,17 +848,12 @@ pub mod tests {
853
848
let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
854
849
runner. update_beacon ( & beacon) . await . unwrap ( ) ;
855
850
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 ( ) ,
851
+ let fixture = MithrilFixtureBuilder :: default ( ) . with_signers ( 5 ) . build ( ) ;
852
+
853
+ deps. prepare_for_genesis (
854
+ fixture. signers_with_stake ( ) ,
855
+ fixture. signers_with_stake ( ) ,
856
+ & fixture. protocol_parameters ( ) ,
867
857
)
868
858
. await ;
869
859
@@ -902,7 +892,7 @@ pub mod tests {
902
892
903
893
let mut expected = WorkingCertificate :: from_pending_certificate (
904
894
& certificate_pending,
905
- & current_signers ,
895
+ & fixture . signers_with_stake ( ) ,
906
896
& message,
907
897
& aggregate_verification_key,
908
898
& sut. initiated_at ,
@@ -956,18 +946,15 @@ pub mod tests {
956
946
let ( deps, config) = initialize_dependencies ( ) . await ;
957
947
let deps = Arc :: new ( deps) ;
958
948
let runner = AggregatorRunner :: new ( config, deps. clone ( ) ) ;
959
- let beacon = runner. get_beacon_from_chain ( ) . await . unwrap ( ) ;
960
949
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
- }
950
+ runner. update_beacon ( & fake_data:: beacon ( ) ) . await . unwrap ( ) ;
951
+ let fixture = MithrilFixtureBuilder :: default ( ) . build ( ) ;
952
+ deps. prepare_for_genesis (
953
+ fixture. signers_with_stake ( ) ,
954
+ fixture. signers_with_stake ( ) ,
955
+ & fixture. protocol_parameters ( ) ,
956
+ )
957
+ . await ;
971
958
972
959
runner
973
960
. update_message_in_multisigner ( digest)
@@ -1061,15 +1048,8 @@ pub mod tests {
1061
1048
. expect_get_multi_signature ( )
1062
1049
. return_once ( move || Ok ( Some ( multi_signature) ) ) ;
1063
1050
deps. multi_signer = Arc :: new ( RwLock :: new ( mock_multi_signer) ) ;
1064
- let certificate_store = deps. certificate_store . clone ( ) ;
1051
+ deps. init_state_from_chain ( & certificate_chain , vec ! [ ] ) . await ;
1065
1052
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
1053
1074
1054
let certificate = runner
1075
1055
. create_and_save_certificate ( & working_certificate)
0 commit comments