// Copyright (C) 2023 Parity Technologies (UK) Ltd. // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //! Test utilities. pub use crate as pallet_collective_content; use crate::WeightInfo; use frame_support::{ derive_impl, ord_parameter_types, parameter_types, traits::{ConstU32, ConstU64}, weights::Weight, }; use frame_system::EnsureSignedBy; use sp_runtime::{traits::IdentityLookup, BuildStorage}; frame_support::construct_runtime!( pub enum Test { System: frame_system, CollectiveContent: pallet_collective_content, } ); type AccountId = u64; type Block = frame_system::mocking::MockBlock; ord_parameter_types! { pub const CharterManager: u64 = 1; pub const AnnouncementManager: u64 = 2; pub const SomeAccount: u64 = 3; } parameter_types! { pub const AnnouncementLifetime: u64 = 100; pub const MaxAnnouncements: u32 = 5; } impl pallet_collective_content::Config for Test { type RuntimeEvent = RuntimeEvent; type AnnouncementLifetime = AnnouncementLifetime; type AnnouncementOrigin = EnsureSignedBy; type MaxAnnouncements = MaxAnnouncements; type CharterOrigin = EnsureSignedBy; type WeightInfo = CCWeightInfo; } #[derive_impl(frame_system::config_preludes::TestDefaultConfig)] impl frame_system::Config for Test { type BaseCallFilter = (); type BlockWeights = (); type BlockLength = (); type DbWeight = (); type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; type Nonce = u64; type Block = Block; type Hash = sp_core::H256; type Hashing = sp_runtime::traits::BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<16>; } pub struct CCWeightInfo; impl WeightInfo for CCWeightInfo { fn set_charter() -> Weight { Weight::zero() } fn announce() -> Weight { Weight::zero() } fn remove_announcement() -> Weight { Weight::zero() } } // Build test environment. pub fn new_test_ext() -> sp_io::TestExternalities { let t = RuntimeGenesisConfig::default().build_storage().unwrap().into(); let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| System::set_block_number(1)); ext } #[cfg(feature = "runtime-benchmarks")] pub fn new_bench_ext() -> sp_io::TestExternalities { RuntimeGenesisConfig::default().build_storage().unwrap().into() }