Browse Source

Add externality builder

Bedeho 5 years ago
parent
commit
71dd40b225
1 changed files with 23 additions and 24 deletions
  1. 23 24
      src/membership/mock.rs

+ 23 - 24
src/membership/mock.rs

@@ -1,6 +1,6 @@
 #![cfg(test)]
 
-pub use super::members::{self, DEFAULT_PAID_TERM_ID};
+pub use super::members::{self, Trait, DEFAULT_PAID_TERM_ID};
 pub use crate::currency::GovernanceCurrency;
 pub use srml_support::traits::Currency;
 pub use system;
@@ -93,43 +93,42 @@ impl members::Trait for Test {
     type InitialMembersBalance = InitialMembersBalance;
 }
 
-pub struct ExtBuilder {
-    default_paid_membership_fee: u64,
-    members: Vec<(u64)>,
+pub struct TestExternalitiesBuilder<T: Trait> {
+    system_config: Option<system::GenesisConfig>,
+    membership_config: Option<members::GenesisConfig<T>>,
 }
-impl Default for ExtBuilder {
+
+impl<T: Trait> Default for TestExternalitiesBuilder<T> {
     fn default() -> Self {
         Self {
-            default_paid_membership_fee: 100,
-            members: vec![],
+            system_config: None,
+            membership_config: None,
         }
     }
 }
 
-impl ExtBuilder {
-    pub fn default_paid_membership_fee(mut self, default_paid_membership_fee: u64) -> Self {
-        self.default_paid_membership_fee = default_paid_membership_fee;
+impl<T: Trait> TestExternalitiesBuilder<T> {
+    pub fn set_system_config(mut self, system_config: system::GenesisConfig) -> Self {
+        self.system_config = Some(system_config);
         self
     }
-    pub fn members(mut self, members: Vec<u64>) -> Self {
-        self.members = members;
+    pub fn set_membership_config(mut self, membership_config: members::GenesisConfig<T>) -> Self {
+        self.membership_config = Some(membership_config);
         self
     }
     pub fn build(self) -> runtime_io::TestExternalities {
-        let mut t = system::GenesisConfig::default()
-            .build_storage::<Test>()
+        // Add system
+        let mut t = self
+            .system_config
+            .unwrap_or(system::GenesisConfig::default())
+            .build_storage::<T>()
             .unwrap();
 
-        members::GenesisConfig::<Test> {
-            default_paid_membership_fee: self.default_paid_membership_fee,
-            members: self
-                .members
-                .iter()
-                .map(|account_id| (*account_id, "".into(), "".into(), "".into()))
-                .collect(),
-        }
-        .assimilate_storage(&mut t)
-        .unwrap();
+        // Add membership
+        self.membership_config
+            .unwrap_or(members::GenesisConfig::default())
+            .assimilate_storage(&mut t)
+            .unwrap();
 
         t.into()
     }