Browse Source

membership: tests: initial members at genesis

Mokhtar Naamani 5 years ago
parent
commit
d95c482e31
3 changed files with 21 additions and 7 deletions
  1. 1 1
      src/membership/members.rs
  2. 12 2
      src/membership/mock.rs
  3. 8 4
      src/membership/tests.rs

+ 1 - 1
src/membership/members.rs

@@ -65,7 +65,7 @@ const DEFAULT_FIRST_MEMBER_ID: u32 = 1;
 const FIRST_PAID_TERMS_ID: u32 = 1;
 
 // Default paid membership terms
-const DEFAULT_PAID_TERM_ID: u32 = 0;
+pub const DEFAULT_PAID_TERM_ID: u32 = 0;
 const DEFAULT_PAID_TERM_FEE: u32 = 100; // Can be overidden in genesis config
 const DEFAULT_PAID_TERM_TEXT: &str = "Default Paid Term TOS...";
 

+ 12 - 2
src/membership/mock.rs

@@ -1,6 +1,6 @@
 #![cfg(test)]
 
-pub use super::members;
+pub use super::members::{self, DEFAULT_PAID_TERM_ID};
 pub use crate::currency::GovernanceCurrency;
 pub use srml_support::traits::Currency;
 pub use system;
@@ -100,12 +100,14 @@ impl members::Trait for Test {
 pub struct ExtBuilder {
     first_member_id: u32,
     default_paid_membership_fee: u64,
+    members: Vec<(u64)>,
 }
 impl Default for ExtBuilder {
     fn default() -> Self {
         Self {
             first_member_id: 1,
             default_paid_membership_fee: 100,
+            members: vec![],
         }
     }
 }
@@ -119,6 +121,10 @@ impl ExtBuilder {
         self.default_paid_membership_fee = default_paid_membership_fee;
         self
     }
+    pub fn members(mut self, members: Vec<u64>) -> Self {
+        self.members = members;
+        self
+    }
     pub fn build(self) -> runtime_io::TestExternalities<Blake2Hasher> {
         let mut t = system::GenesisConfig::default()
             .build_storage::<Test>()
@@ -127,7 +133,11 @@ impl ExtBuilder {
         members::GenesisConfig::<Test> {
             first_member_id: self.first_member_id,
             default_paid_membership_fee: self.default_paid_membership_fee,
-            members: vec![],
+            members: self
+                .members
+                .iter()
+                .map(|account_id| (*account_id, "".into(), "".into(), "".into()))
+                .collect(),
         }
         .assimilate_storage(&mut t)
         .unwrap();

+ 8 - 4
src/membership/tests.rs

@@ -40,12 +40,11 @@ fn get_bob_info() -> members::UserInfo {
 }
 
 const ALICE_ACCOUNT_ID: u64 = 1;
-const DEFAULT_TERMS_ID: u32 = 0;
 
 fn buy_default_membership_as_alice() -> dispatch::Result {
     Members::buy_membership(
         Origin::signed(ALICE_ACCOUNT_ID),
-        DEFAULT_TERMS_ID,
+        DEFAULT_PAID_TERM_ID,
         get_alice_info(),
     )
 }
@@ -58,18 +57,23 @@ fn set_alice_free_balance(balance: u64) {
 fn initial_state() {
     const DEFAULT_FEE: u64 = 500;
     const DEFAULT_FIRST_ID: u32 = 1000;
+    let initial_members = [1, 2, 3];
 
     with_externalities(
         &mut ExtBuilder::default()
             .default_paid_membership_fee(DEFAULT_FEE)
             .first_member_id(DEFAULT_FIRST_ID)
+            .members(initial_members.to_vec())
             .build(),
         || {
             assert_eq!(Members::first_member_id(), DEFAULT_FIRST_ID);
-            assert_eq!(Members::next_member_id(), DEFAULT_FIRST_ID);
+            assert_eq!(
+                Members::next_member_id(),
+                DEFAULT_FIRST_ID + initial_members.len() as u32
+            );
 
             let default_terms = assert_ok_unwrap(
-                Members::paid_membership_terms_by_id(DEFAULT_TERMS_ID),
+                Members::paid_membership_terms_by_id(DEFAULT_PAID_TERM_ID),
                 "default terms not initialized",
             );