123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- #![cfg(test)]
- pub use super::{council, election};
- pub use common::currency::GovernanceCurrency;
- use frame_support::{impl_outer_origin, parameter_types};
- pub use frame_system;
- use sp_core::H256;
- use sp_runtime::{
- testing::Header,
- traits::{BlakeTwo256, IdentityLookup},
- BuildStorage, Perbill,
- };
- impl_outer_origin! {
- pub enum Origin for Test {}
- }
- // Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
- #[derive(Clone, PartialEq, Eq, Debug)]
- pub struct Test;
- parameter_types! {
- pub const BlockHashCount: u64 = 250;
- pub const MaximumBlockWeight: u32 = 1024;
- pub const MaximumBlockLength: u32 = 2 * 1024;
- pub const AvailableBlockRatio: Perbill = Perbill::one();
- pub const MinimumPeriod: u64 = 5;
- }
- impl frame_system::Trait for Test {
- type BaseCallFilter = ();
- type Origin = Origin;
- type Call = ();
- type Index = u64;
- type BlockNumber = u64;
- type Hash = H256;
- type Hashing = BlakeTwo256;
- type AccountId = u64;
- type Lookup = IdentityLookup<Self::AccountId>;
- type Header = Header;
- type Event = ();
- type BlockHashCount = BlockHashCount;
- type MaximumBlockWeight = MaximumBlockWeight;
- type DbWeight = ();
- type BlockExecutionWeight = ();
- type ExtrinsicBaseWeight = ();
- type MaximumExtrinsicWeight = ();
- type MaximumBlockLength = MaximumBlockLength;
- type AvailableBlockRatio = AvailableBlockRatio;
- type Version = ();
- type AccountData = balances::AccountData<u64>;
- type OnNewAccount = ();
- type OnKilledAccount = ();
- type PalletInfo = ();
- type SystemWeightInfo = ();
- }
- impl pallet_timestamp::Trait for Test {
- type Moment = u64;
- type OnTimestampSet = ();
- type MinimumPeriod = MinimumPeriod;
- type WeightInfo = ();
- }
- impl council::Trait for Test {
- type Event = ();
- type CouncilTermEnded = (Election,);
- }
- impl election::Trait for Test {
- type Event = ();
- type CouncilElected = (Council,);
- }
- parameter_types! {
- pub const ScreenedMemberMaxInitialBalance: u64 = 500;
- }
- impl common::MembershipTypes for Test {
- type MemberId = u64;
- type ActorId = u64;
- }
- impl membership::Trait for Test {
- type Event = ();
- type SubscriptionId = u32;
- type PaidTermId = u32;
- type ScreenedMemberMaxInitialBalance = ScreenedMemberMaxInitialBalance;
- }
- impl minting::Trait for Test {
- type Currency = Balances;
- type MintId = u64;
- }
- impl recurringrewards::Trait for Test {
- type PayoutStatusHandler = ();
- type RecipientId = u64;
- type RewardRelationshipId = u64;
- }
- parameter_types! {
- pub const ExistentialDeposit: u32 = 0;
- }
- impl balances::Trait for Test {
- type Balance = u64;
- type DustRemoval = ();
- type Event = ();
- type ExistentialDeposit = ExistentialDeposit;
- type AccountStore = System;
- type WeightInfo = ();
- type MaxLocks = ();
- }
- impl GovernanceCurrency for Test {
- type Currency = balances::Module<Self>;
- }
- // TODO add a Hook type to capture TriggerElection and CouncilElected hooks
- // This function basically just builds a genesis storage key/value store according to
- // our desired mockup.
- pub fn initial_test_ext() -> sp_io::TestExternalities {
- let mut t = frame_system::GenesisConfig::default()
- .build_storage::<Test>()
- .unwrap();
- let members_config_builder = membership::genesis::GenesisConfigBuilder::<Test>::default()
- .default_paid_membership_fee(0)
- .members(vec![
- // member_id, account_id
- (0, 1),
- (1, 2),
- (2, 3),
- (3, 4),
- (4, 5),
- (5, 6),
- (6, 7),
- (7, 8),
- (8, 9),
- (9, 10),
- (10, 11),
- (11, 12),
- (12, 13),
- (13, 14),
- (14, 15),
- (15, 16),
- (16, 17),
- (17, 18),
- (18, 19),
- (19, 20),
- ]);
- members_config_builder
- .build()
- .assimilate_storage(&mut t)
- .unwrap();
- // build the council config to initialize the mint
- let council_config = council::GenesisConfig::<Test>::default()
- .build_storage()
- .unwrap();
- council_config.assimilate_storage(&mut t).unwrap();
- t.into()
- }
- pub type Election = election::Module<Test>;
- pub type Council = council::Module<Test>;
- pub type System = frame_system::Module<Test>;
- pub type Balances = balances::Module<Test>;
|