Browse Source

Fix integration tests

Fix tests for moved CouncilManager and MemberhipOriginValidator in the runtime proposal integration
Shamil Gadelshin 5 years ago
parent
commit
522dd9e269

+ 1 - 1
runtime-modules/proposals/codex/src/lib.rs

@@ -45,7 +45,7 @@ pub type BalanceOf<T> =
 pub type NegativeImbalance<T> =
     <<T as stake::Trait>::Currency as Currency<<T as system::Trait>::AccountId>>::NegativeImbalance;
 
-type MemberId<T> = <T as  membership::members::Trait>::MemberId;
+type MemberId<T> = <T as membership::members::Trait>::MemberId;
 
 decl_error! {
     pub enum Error {

+ 1 - 1
runtime-modules/proposals/discussion/src/lib.rs

@@ -29,7 +29,7 @@ use types::{Post, Thread, ThreadCounter};
 
 use common::origin_validator::ActorOriginValidator;
 
-type MemberId<T> = <T as  membership::members::Trait>::MemberId;
+type MemberId<T> = <T as membership::members::Trait>::MemberId;
 
 decl_event!(
     /// Proposals engine events

+ 2 - 5
runtime-modules/proposals/engine/src/lib.rs

@@ -51,14 +51,11 @@ use system::{ensure_root, RawOrigin};
 use common::origin_validator::ActorOriginValidator;
 use srml_support::dispatch::Dispatchable;
 
-type MemberId<T> = <T as  membership::members::Trait>::MemberId;
+type MemberId<T> = <T as membership::members::Trait>::MemberId;
 
 /// Proposals engine trait.
 pub trait Trait:
-    system::Trait
-    + timestamp::Trait
-    + stake::Trait
-    + membership::members::Trait
+    system::Trait + timestamp::Trait + stake::Trait + membership::members::Trait
 {
     /// Engine event type.
     type Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;

+ 0 - 16
runtime-modules/proposals/engine/src/tests/mock/mod.rs

@@ -41,22 +41,11 @@ mod membership_mod {
     pub use membership::members::Event;
 }
 
-mod council_mod {
-    pub use governance::council::Event;
-}
-
-// impl_outer_dispatch! {
-//     pub enum Call for Test where origin: Origin {
-//         engine::ProposalsEngine,
-//     }
-// }
-
 impl_outer_event! {
     pub enum TestEvent for Test {
         balances<T>,
         engine<T>,
         membership_mod<T>,
-        council_mod<T>,
     }
 }
 
@@ -87,11 +76,6 @@ impl common::currency::GovernanceCurrency for Test {
     type Currency = balances::Module<Self>;
 }
 
-impl governance::council::Trait for Test {
-    type Event = TestEvent;
-    type CouncilTermEnded = ();
-}
-
 impl proposals::Trait for Test {}
 
 impl stake::Trait for Test {

+ 1 - 1
runtime/src/integration/mod.rs

@@ -1 +1 @@
-pub mod proposals;
+pub mod proposals;

+ 73 - 32
runtime/src/integration/proposals/council_origin_validator.rs

@@ -1,9 +1,9 @@
 use rstd::marker::PhantomData;
 
-use proposals_engine::VotersParameters;
 use common::origin_validator::ActorOriginValidator;
+use proposals_engine::VotersParameters;
 
-use super::{MembershipOriginValidator, MemberId};
+use super::{MemberId, MembershipOriginValidator};
 
 /// Handles work with the council.
 /// Provides implementations for ActorOriginValidator and VotersParameters.
@@ -40,25 +40,36 @@ impl<T: governance::council::Trait> VotersParameters for CouncilManager<T> {
 
 #[cfg(test)]
 mod tests {
-    use crate::tests::mock::{initial_test_ext, Test};
     use super::CouncilManager;
-    use proposals_engine::VotersParameters;
+    use crate::Runtime;
     use common::origin_validator::ActorOriginValidator;
     use membership::members::UserInfo;
+    use proposals_engine::VotersParameters;
+    use sr_primitives::AccountId32;
     use system::RawOrigin;
 
-    type Membership = membership::members::Module<Test>;
-    type Council = governance::council::Module<Test>;
+    type Council = governance::council::Module<Runtime>;
+
+    fn initial_test_ext() -> runtime_io::TestExternalities {
+        let t = system::GenesisConfig::default()
+            .build_storage::<Runtime>()
+            .unwrap();
+
+        t.into()
+    }
+
+    type Membership = membership::members::Module<Runtime>;
+    type ProposalsEngine = proposals_engine::Module<Runtime>;
 
     #[test]
     fn council_origin_validator_fails_with_unregistered_member() {
         initial_test_ext().execute_with(|| {
-            let origin = RawOrigin::Signed(1);
+            let origin = RawOrigin::Signed(AccountId32::default());
             let member_id = 1;
             let error = "Membership validation failed: cannot find a profile for a member";
 
             let validation_result =
-                CouncilManager::<Test>::ensure_actor_origin(origin.into(), member_id);
+                CouncilManager::<Runtime>::ensure_actor_origin(origin.into(), member_id);
 
             assert_eq!(validation_result, Err(error));
         });
@@ -67,17 +78,28 @@ mod tests {
     #[test]
     fn council_origin_validator_succeeds() {
         initial_test_ext().execute_with(|| {
-            assert!(Council::set_council(system::RawOrigin::Root.into(), vec![1, 2, 3]).is_ok());
+            let councilor1 = AccountId32::default();
+            let councilor2: [u8; 32] = [2; 32];
+            let councilor3: [u8; 32] = [3; 32];
 
-            let account_id = 1;
-            let origin = RawOrigin::Signed(account_id);
-            let authority_account_id = 10;
-            Membership::set_screening_authority(RawOrigin::Root.into(), authority_account_id)
-                .unwrap();
+            assert!(Council::set_council(
+                system::RawOrigin::Root.into(),
+                vec![councilor1, councilor2.into(), councilor3.into()]
+            )
+            .is_ok());
+
+            let account_id = AccountId32::default();
+            let origin = RawOrigin::Signed(account_id.clone());
+            let authority_account_id = AccountId32::default();
+            Membership::set_screening_authority(
+                RawOrigin::Root.into(),
+                authority_account_id.clone(),
+            )
+            .unwrap();
 
             Membership::add_screened_member(
                 RawOrigin::Signed(authority_account_id).into(),
-                account_id,
+                account_id.clone(),
                 UserInfo {
                     handle: Some(b"handle".to_vec()),
                     avatar_uri: None,
@@ -88,7 +110,7 @@ mod tests {
             let member_id = 0; // newly created member_id
 
             let validation_result =
-                CouncilManager::<Test>::ensure_actor_origin(origin.into(), member_id);
+                CouncilManager::<Runtime>::ensure_actor_origin(origin.into(), member_id);
 
             assert_eq!(validation_result, Ok(account_id));
         });
@@ -97,16 +119,19 @@ mod tests {
     #[test]
     fn council_origin_validator_fails_with_incompatible_account_id_and_member_id() {
         initial_test_ext().execute_with(|| {
-            let account_id = 1;
+            let account_id = AccountId32::default();
             let error =
                 "Membership validation failed: given account doesn't match with profile accounts";
-            let authority_account_id = 10;
-            Membership::set_screening_authority(RawOrigin::Root.into(), authority_account_id)
-                .unwrap();
+            let authority_account_id = AccountId32::default();
+            Membership::set_screening_authority(
+                RawOrigin::Root.into(),
+                authority_account_id.clone(),
+            )
+            .unwrap();
 
             Membership::add_screened_member(
                 RawOrigin::Signed(authority_account_id).into(),
-                account_id,
+                account_id.clone(),
                 UserInfo {
                     handle: Some(b"handle".to_vec()),
                     avatar_uri: None,
@@ -116,9 +141,9 @@ mod tests {
             .unwrap();
             let member_id = 0; // newly created member_id
 
-            let invalid_account_id = 2;
-            let validation_result = CouncilManager::<Test>::ensure_actor_origin(
-                RawOrigin::Signed(invalid_account_id).into(),
+            let invalid_account_id: [u8; 32] = [2; 32];
+            let validation_result = CouncilManager::<Runtime>::ensure_actor_origin(
+                RawOrigin::Signed(invalid_account_id.into()).into(),
                 member_id,
             );
 
@@ -129,12 +154,15 @@ mod tests {
     #[test]
     fn council_origin_validator_fails_with_not_council_account_id() {
         initial_test_ext().execute_with(|| {
-            let account_id = 1;
-            let origin = RawOrigin::Signed(account_id);
+            let account_id = AccountId32::default();
+            let origin = RawOrigin::Signed(account_id.clone());
             let error = "Council validation failed: account id doesn't belong to a council member";
-            let authority_account_id = 10;
-            Membership::set_screening_authority(RawOrigin::Root.into(), authority_account_id)
-                .unwrap();
+            let authority_account_id = AccountId32::default();
+            Membership::set_screening_authority(
+                RawOrigin::Root.into(),
+                authority_account_id.clone(),
+            )
+            .unwrap();
 
             Membership::add_screened_member(
                 RawOrigin::Signed(authority_account_id).into(),
@@ -149,7 +177,7 @@ mod tests {
             let member_id = 0; // newly created member_id
 
             let validation_result =
-                CouncilManager::<Test>::ensure_actor_origin(origin.into(), member_id);
+                CouncilManager::<Runtime>::ensure_actor_origin(origin.into(), member_id);
 
             assert_eq!(validation_result, Err(error));
         });
@@ -158,9 +186,22 @@ mod tests {
     #[test]
     fn council_size_calculation_aka_total_voters_count_succeeds() {
         initial_test_ext().execute_with(|| {
-            assert!(Council::set_council(system::RawOrigin::Root.into(), vec![1, 2, 3, 7]).is_ok());
+            let councilor1 = AccountId32::default();
+            let councilor2: [u8; 32] = [2; 32];
+            let councilor3: [u8; 32] = [3; 32];
+            let councilor4: [u8; 32] = [4; 32];
+            assert!(Council::set_council(
+                system::RawOrigin::Root.into(),
+                vec![
+                    councilor1,
+                    councilor2.into(),
+                    councilor3.into(),
+                    councilor4.into()
+                ]
+            )
+            .is_ok());
 
-            assert_eq!(CouncilManager::<Test>::total_voters_count(), 4)
+            assert_eq!(CouncilManager::<Runtime>::total_voters_count(), 4)
         });
     }
 }

+ 33 - 22
runtime/src/integration/proposals/membership_origin_validator.rs

@@ -42,27 +42,32 @@ impl<T: crate::members::Trait>
 
 #[cfg(test)]
 mod tests {
-    use crate::members::UserInfo;
-    use crate::mock::{Test, TestExternalitiesBuilder};
-    use crate::origin_validator::MembershipOriginValidator;
+    use super::MembershipOriginValidator;
+    use crate::Runtime;
     use common::origin_validator::ActorOriginValidator;
+    use membership::members::UserInfo;
+    use sr_primitives::AccountId32;
     use system::RawOrigin;
 
-    type Membership = crate::members::Module<Test>;
+    type Membership = crate::members::Module<Runtime>;
 
-    pub fn initial_test_ext() -> runtime_io::TestExternalities {
-        TestExternalitiesBuilder::<Test>::default().build()
+    fn initial_test_ext() -> runtime_io::TestExternalities {
+        let t = system::GenesisConfig::default()
+            .build_storage::<Runtime>()
+            .unwrap();
+
+        t.into()
     }
 
     #[test]
     fn membership_origin_validator_fails_with_unregistered_member() {
         initial_test_ext().execute_with(|| {
-            let origin = RawOrigin::Signed(1);
+            let origin = RawOrigin::Signed(AccountId32::default());
             let member_id = 1;
             let error = "Membership validation failed: cannot find a profile for a member";
 
             let validation_result =
-                MembershipOriginValidator::<Test>::ensure_actor_origin(origin.into(), member_id);
+                MembershipOriginValidator::<Runtime>::ensure_actor_origin(origin.into(), member_id);
 
             assert_eq!(validation_result, Err(error));
         });
@@ -71,15 +76,18 @@ mod tests {
     #[test]
     fn membership_origin_validator_succeeds() {
         initial_test_ext().execute_with(|| {
-            let account_id = 1;
-            let origin = RawOrigin::Signed(account_id);
-            let authority_account_id = 10;
-            Membership::set_screening_authority(RawOrigin::Root.into(), authority_account_id)
-                .unwrap();
+            let account_id = AccountId32::default();
+            let origin = RawOrigin::Signed(account_id.clone());
+            let authority_account_id = AccountId32::default();
+            Membership::set_screening_authority(
+                RawOrigin::Root.into(),
+                authority_account_id.clone(),
+            )
+            .unwrap();
 
             Membership::add_screened_member(
                 RawOrigin::Signed(authority_account_id).into(),
-                account_id,
+                account_id.clone(),
                 UserInfo {
                     handle: Some(b"handle".to_vec()),
                     avatar_uri: None,
@@ -90,7 +98,7 @@ mod tests {
             let member_id = 0; // newly created member_id
 
             let validation_result =
-                MembershipOriginValidator::<Test>::ensure_actor_origin(origin.into(), member_id);
+                MembershipOriginValidator::<Runtime>::ensure_actor_origin(origin.into(), member_id);
 
             assert_eq!(validation_result, Ok(account_id));
         });
@@ -99,12 +107,15 @@ mod tests {
     #[test]
     fn membership_origin_validator_fails_with_incompatible_account_id_and_member_id() {
         initial_test_ext().execute_with(|| {
-            let account_id = 1;
+            let account_id = AccountId32::default();
             let error =
                 "Membership validation failed: given account doesn't match with profile accounts";
-            let authority_account_id = 10;
-            Membership::set_screening_authority(RawOrigin::Root.into(), authority_account_id)
-                .unwrap();
+            let authority_account_id = AccountId32::default();
+            Membership::set_screening_authority(
+                RawOrigin::Root.into(),
+                authority_account_id.clone(),
+            )
+            .unwrap();
 
             Membership::add_screened_member(
                 RawOrigin::Signed(authority_account_id).into(),
@@ -118,9 +129,9 @@ mod tests {
             .unwrap();
             let member_id = 0; // newly created member_id
 
-            let invalid_account_id = 2;
-            let validation_result = MembershipOriginValidator::<Test>::ensure_actor_origin(
-                RawOrigin::Signed(invalid_account_id).into(),
+            let invalid_account_id: [u8; 32] = [2; 32];
+            let validation_result = MembershipOriginValidator::<Runtime>::ensure_actor_origin(
+                RawOrigin::Signed(invalid_account_id.into()).into(),
                 member_id,
             );
 

+ 2 - 2
runtime/src/integration/proposals/mod.rs

@@ -1,5 +1,5 @@
-mod membership_origin_validator;
 mod council_origin_validator;
+mod membership_origin_validator;
 
 pub use council_origin_validator::CouncilManager;
-pub use membership_origin_validator::{MembershipOriginValidator, MemberId};
+pub use membership_origin_validator::{MemberId, MembershipOriginValidator};

+ 1 - 1
runtime/src/lib.rs

@@ -56,7 +56,7 @@ pub use srml_support::{
 pub use staking::StakerStatus;
 pub use timestamp::Call as TimestampCall;
 
-use integration::proposals::{MembershipOriginValidator, CouncilManager};
+use integration::proposals::{CouncilManager, MembershipOriginValidator};
 
 /// An index to a block.
 pub type BlockNumber = u32;