mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 18:41:05 +00:00
BREAKING: Rename Origin (#12258)
* BREAKING: Rename Origin * more renaming * a bit more renaming * fix * more fixing * fix in frame_support * even more fixes * fix * small fix * ... * update .stderr * docs * update docs * update docs * docs
This commit is contained in:
@@ -241,12 +241,12 @@ impl<T: Config<I>, I: 'static> GetMaxVoters for Pallet<T, I> {
|
||||
/// Guard to ensure that the given origin is a member of the collective. The rank of the member is
|
||||
/// the `Success` value.
|
||||
pub struct EnsureRanked<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
|
||||
for EnsureRanked<T, I, MIN_RANK>
|
||||
{
|
||||
type Success = Rank;
|
||||
|
||||
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
|
||||
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
|
||||
let who = frame_system::EnsureSigned::try_origin(o)?;
|
||||
match Members::<T, I>::get(&who) {
|
||||
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok(rank),
|
||||
@@ -255,13 +255,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn try_successful_origin() -> Result<T::Origin, ()> {
|
||||
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
|
||||
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
|
||||
Ok(frame_system::RawOrigin::Signed(who).into())
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn successful_origin() -> T::Origin {
|
||||
fn successful_origin() -> T::RuntimeOrigin {
|
||||
match Self::try_successful_origin() {
|
||||
Ok(o) => o,
|
||||
Err(()) => {
|
||||
@@ -277,12 +277,12 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
/// Guard to ensure that the given origin is a member of the collective. The account ID of the
|
||||
/// member is the `Success` value.
|
||||
pub struct EnsureMember<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
|
||||
for EnsureMember<T, I, MIN_RANK>
|
||||
{
|
||||
type Success = T::AccountId;
|
||||
|
||||
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
|
||||
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
|
||||
let who = frame_system::EnsureSigned::try_origin(o)?;
|
||||
match Members::<T, I>::get(&who) {
|
||||
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok(who),
|
||||
@@ -291,13 +291,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn try_successful_origin() -> Result<T::Origin, ()> {
|
||||
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
|
||||
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
|
||||
Ok(frame_system::RawOrigin::Signed(who).into())
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn successful_origin() -> T::Origin {
|
||||
fn successful_origin() -> T::RuntimeOrigin {
|
||||
match Self::try_successful_origin() {
|
||||
Ok(o) => o,
|
||||
Err(()) => {
|
||||
@@ -313,12 +313,12 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
/// Guard to ensure that the given origin is a member of the collective. The pair of including both
|
||||
/// the account ID and the rank of the member is the `Success` value.
|
||||
pub struct EnsureRankedMember<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
|
||||
for EnsureRankedMember<T, I, MIN_RANK>
|
||||
{
|
||||
type Success = (T::AccountId, Rank);
|
||||
|
||||
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
|
||||
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
|
||||
let who = frame_system::EnsureSigned::try_origin(o)?;
|
||||
match Members::<T, I>::get(&who) {
|
||||
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok((who, rank)),
|
||||
@@ -327,13 +327,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn try_successful_origin() -> Result<T::Origin, ()> {
|
||||
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
|
||||
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
|
||||
Ok(frame_system::RawOrigin::Signed(who).into())
|
||||
}
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
fn successful_origin() -> T::Origin {
|
||||
fn successful_origin() -> T::RuntimeOrigin {
|
||||
match Self::try_successful_origin() {
|
||||
Ok(o) => o,
|
||||
Err(()) => {
|
||||
@@ -367,11 +367,11 @@ pub mod pallet {
|
||||
|
||||
/// The origin required to add or promote a mmember. The success value indicates the
|
||||
/// maximum rank *to which* the promotion may be.
|
||||
type PromoteOrigin: EnsureOrigin<Self::Origin, Success = Rank>;
|
||||
type PromoteOrigin: EnsureOrigin<Self::RuntimeOrigin, Success = Rank>;
|
||||
|
||||
/// The origin required to demote or remove a member. The success value indicates the
|
||||
/// maximum rank *from which* the demotion/removal may be.
|
||||
type DemoteOrigin: EnsureOrigin<Self::Origin, Success = Rank>;
|
||||
type DemoteOrigin: EnsureOrigin<Self::RuntimeOrigin, Success = Rank>;
|
||||
|
||||
/// The polling system used for our voting.
|
||||
type Polls: Polling<TallyOf<Self, I>, Votes = Votes, Moment = Self::BlockNumber>;
|
||||
|
||||
@@ -58,7 +58,7 @@ impl frame_system::Config for Test {
|
||||
type BlockWeights = ();
|
||||
type BlockLength = ();
|
||||
type DbWeight = ();
|
||||
type Origin = Origin;
|
||||
type RuntimeOrigin = RuntimeOrigin;
|
||||
type Index = u64;
|
||||
type BlockNumber = u64;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
@@ -239,10 +239,10 @@ fn basic_stuff() {
|
||||
#[test]
|
||||
fn member_lifecycle_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 0);
|
||||
assert_eq!(member_count(1), 0);
|
||||
});
|
||||
@@ -251,29 +251,29 @@ fn member_lifecycle_works() {
|
||||
#[test]
|
||||
fn add_remove_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_noop!(Club::add_member(Origin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_noop!(Club::add_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 1);
|
||||
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 0);
|
||||
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 1);
|
||||
|
||||
assert_ok!(Club::add_member(Origin::root(), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
|
||||
assert_eq!(member_count(0), 2);
|
||||
|
||||
assert_ok!(Club::add_member(Origin::root(), 3));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
|
||||
assert_eq!(member_count(0), 3);
|
||||
|
||||
assert_ok!(Club::demote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 3));
|
||||
assert_eq!(member_count(0), 2);
|
||||
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 1);
|
||||
|
||||
assert_ok!(Club::demote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 2));
|
||||
assert_eq!(member_count(0), 0);
|
||||
});
|
||||
}
|
||||
@@ -281,29 +281,29 @@ fn add_remove_works() {
|
||||
#[test]
|
||||
fn promote_demote_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_noop!(Club::add_member(Origin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_noop!(Club::add_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 1);
|
||||
assert_eq!(member_count(1), 0);
|
||||
|
||||
assert_ok!(Club::add_member(Origin::root(), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
|
||||
assert_eq!(member_count(0), 2);
|
||||
assert_eq!(member_count(1), 0);
|
||||
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 2);
|
||||
assert_eq!(member_count(1), 1);
|
||||
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_eq!(member_count(0), 2);
|
||||
assert_eq!(member_count(1), 2);
|
||||
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 2);
|
||||
assert_eq!(member_count(1), 1);
|
||||
|
||||
assert_noop!(Club::demote_member(Origin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::demote_member(Origin::root(), 1));
|
||||
assert_noop!(Club::demote_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
|
||||
assert_eq!(member_count(0), 1);
|
||||
assert_eq!(member_count(1), 1);
|
||||
});
|
||||
@@ -312,88 +312,100 @@ fn promote_demote_works() {
|
||||
#[test]
|
||||
fn promote_demote_by_rank_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
for _ in 0..7 {
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
}
|
||||
|
||||
// #1 can add #2 and promote to rank 1
|
||||
assert_ok!(Club::add_member(Origin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(Origin::signed(1), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
|
||||
// #2 as rank 1 cannot do anything privileged
|
||||
assert_noop!(Club::add_member(Origin::signed(2), 3), BadOrigin);
|
||||
assert_noop!(Club::add_member(RuntimeOrigin::signed(2), 3), BadOrigin);
|
||||
|
||||
assert_ok!(Club::promote_member(Origin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
|
||||
// #2 as rank 2 can add #3.
|
||||
assert_ok!(Club::add_member(Origin::signed(2), 3));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 3));
|
||||
|
||||
// #2 as rank 2 cannot promote #3 to rank 1
|
||||
assert_noop!(Club::promote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
|
||||
assert_noop!(
|
||||
Club::promote_member(RuntimeOrigin::signed(2), 3),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
|
||||
// #1 as rank 7 can promote #2 only up to rank 5 and once there cannot demote them.
|
||||
assert_ok!(Club::promote_member(Origin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(Origin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(Origin::signed(1), 2));
|
||||
assert_noop!(Club::promote_member(Origin::signed(1), 2), Error::<Test>::NoPermission);
|
||||
assert_noop!(Club::demote_member(Origin::signed(1), 2), Error::<Test>::NoPermission);
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
|
||||
assert_noop!(
|
||||
Club::promote_member(RuntimeOrigin::signed(1), 2),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
assert_noop!(Club::demote_member(RuntimeOrigin::signed(1), 2), Error::<Test>::NoPermission);
|
||||
|
||||
// #2 as rank 5 can promote #3 only up to rank 3 and once there cannot demote them.
|
||||
assert_ok!(Club::promote_member(Origin::signed(2), 3));
|
||||
assert_ok!(Club::promote_member(Origin::signed(2), 3));
|
||||
assert_ok!(Club::promote_member(Origin::signed(2), 3));
|
||||
assert_noop!(Club::promote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
|
||||
assert_noop!(Club::demote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
|
||||
assert_noop!(
|
||||
Club::promote_member(RuntimeOrigin::signed(2), 3),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
assert_noop!(Club::demote_member(RuntimeOrigin::signed(2), 3), Error::<Test>::NoPermission);
|
||||
|
||||
// #2 can add #4 & #5 as rank 0 and #6 & #7 as rank 1.
|
||||
assert_ok!(Club::add_member(Origin::signed(2), 4));
|
||||
assert_ok!(Club::add_member(Origin::signed(2), 5));
|
||||
assert_ok!(Club::add_member(Origin::signed(2), 6));
|
||||
assert_ok!(Club::promote_member(Origin::signed(2), 6));
|
||||
assert_ok!(Club::add_member(Origin::signed(2), 7));
|
||||
assert_ok!(Club::promote_member(Origin::signed(2), 7));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 4));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 5));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 6));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 6));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 7));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 7));
|
||||
|
||||
// #3 as rank 3 can demote/remove #4 & #5 but not #6 & #7
|
||||
assert_ok!(Club::demote_member(Origin::signed(3), 4));
|
||||
assert_ok!(Club::remove_member(Origin::signed(3), 5, 0));
|
||||
assert_noop!(Club::demote_member(Origin::signed(3), 6), Error::<Test>::NoPermission);
|
||||
assert_noop!(Club::remove_member(Origin::signed(3), 7, 1), Error::<Test>::NoPermission);
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::signed(3), 4));
|
||||
assert_ok!(Club::remove_member(RuntimeOrigin::signed(3), 5, 0));
|
||||
assert_noop!(Club::demote_member(RuntimeOrigin::signed(3), 6), Error::<Test>::NoPermission);
|
||||
assert_noop!(
|
||||
Club::remove_member(RuntimeOrigin::signed(3), 7, 1),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
|
||||
// #2 as rank 5 can demote/remove #6 & #7
|
||||
assert_ok!(Club::demote_member(Origin::signed(2), 6));
|
||||
assert_ok!(Club::remove_member(Origin::signed(2), 7, 1));
|
||||
assert_ok!(Club::demote_member(RuntimeOrigin::signed(2), 6));
|
||||
assert_ok!(Club::remove_member(RuntimeOrigin::signed(2), 7, 1));
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn voting_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Club::add_member(Origin::root(), 0));
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::add_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 0));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
|
||||
assert_noop!(Club::vote(Origin::signed(0), 3, true), Error::<Test>::RankTooLow);
|
||||
assert_noop!(Club::vote(RuntimeOrigin::signed(0), 3, true), Error::<Test>::RankTooLow);
|
||||
assert_eq!(tally(3), Tally::from_parts(0, 0, 0));
|
||||
|
||||
assert_ok!(Club::vote(Origin::signed(1), 3, true));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, true));
|
||||
assert_eq!(tally(3), Tally::from_parts(1, 1, 0));
|
||||
assert_ok!(Club::vote(Origin::signed(1), 3, false));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, false));
|
||||
assert_eq!(tally(3), Tally::from_parts(0, 0, 1));
|
||||
|
||||
assert_ok!(Club::vote(Origin::signed(2), 3, true));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, true));
|
||||
assert_eq!(tally(3), Tally::from_parts(1, 3, 1));
|
||||
assert_ok!(Club::vote(Origin::signed(2), 3, false));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, false));
|
||||
assert_eq!(tally(3), Tally::from_parts(0, 0, 4));
|
||||
|
||||
assert_ok!(Club::vote(Origin::signed(3), 3, true));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, true));
|
||||
assert_eq!(tally(3), Tally::from_parts(1, 6, 4));
|
||||
assert_ok!(Club::vote(Origin::signed(3), 3, false));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, false));
|
||||
assert_eq!(tally(3), Tally::from_parts(0, 0, 10));
|
||||
});
|
||||
}
|
||||
@@ -401,59 +413,78 @@ fn voting_works() {
|
||||
#[test]
|
||||
fn cleanup_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::add_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
|
||||
assert_ok!(Club::vote(Origin::signed(1), 3, true));
|
||||
assert_ok!(Club::vote(Origin::signed(2), 3, false));
|
||||
assert_ok!(Club::vote(Origin::signed(3), 3, true));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, true));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, false));
|
||||
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, true));
|
||||
|
||||
assert_noop!(Club::cleanup_poll(Origin::signed(4), 3, 10), Error::<Test>::Ongoing);
|
||||
assert_noop!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10), Error::<Test>::Ongoing);
|
||||
Polls::set(
|
||||
vec![(1, Completed(1, true)), (2, Completed(2, false)), (3, Completed(3, true))]
|
||||
.into_iter()
|
||||
.collect(),
|
||||
);
|
||||
assert_ok!(Club::cleanup_poll(Origin::signed(4), 3, 10));
|
||||
assert_ok!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10));
|
||||
// NOTE: This will fail until #10016 is merged.
|
||||
// assert_noop!(Club::cleanup_poll(Origin::signed(4), 3, 10), Error::<Test>::NoneRemaining);
|
||||
// assert_noop!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10),
|
||||
// Error::<Test>::NoneRemaining);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ensure_ranked_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Club::add_member(Origin::root(), 1));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 1));
|
||||
assert_ok!(Club::add_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 2));
|
||||
assert_ok!(Club::add_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::promote_member(Origin::root(), 3));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
|
||||
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
|
||||
|
||||
use frame_support::traits::OriginTrait;
|
||||
type Rank1 = EnsureRanked<Test, (), 1>;
|
||||
type Rank2 = EnsureRanked<Test, (), 2>;
|
||||
type Rank3 = EnsureRanked<Test, (), 3>;
|
||||
type Rank4 = EnsureRanked<Test, (), 4>;
|
||||
assert_eq!(Rank1::try_origin(Origin::signed(1)).unwrap(), 1);
|
||||
assert_eq!(Rank1::try_origin(Origin::signed(2)).unwrap(), 2);
|
||||
assert_eq!(Rank1::try_origin(Origin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(Rank2::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
|
||||
assert_eq!(Rank2::try_origin(Origin::signed(2)).unwrap(), 2);
|
||||
assert_eq!(Rank2::try_origin(Origin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(Rank3::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
|
||||
assert_eq!(Rank3::try_origin(Origin::signed(2)).unwrap_err().as_signed().unwrap(), 2);
|
||||
assert_eq!(Rank3::try_origin(Origin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(Rank4::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
|
||||
assert_eq!(Rank4::try_origin(Origin::signed(2)).unwrap_err().as_signed().unwrap(), 2);
|
||||
assert_eq!(Rank4::try_origin(Origin::signed(3)).unwrap_err().as_signed().unwrap(), 3);
|
||||
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(1)).unwrap(), 1);
|
||||
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(2)).unwrap(), 2);
|
||||
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(
|
||||
Rank2::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
|
||||
1
|
||||
);
|
||||
assert_eq!(Rank2::try_origin(RuntimeOrigin::signed(2)).unwrap(), 2);
|
||||
assert_eq!(Rank2::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(
|
||||
Rank3::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
|
||||
1
|
||||
);
|
||||
assert_eq!(
|
||||
Rank3::try_origin(RuntimeOrigin::signed(2)).unwrap_err().as_signed().unwrap(),
|
||||
2
|
||||
);
|
||||
assert_eq!(Rank3::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
|
||||
assert_eq!(
|
||||
Rank4::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
|
||||
1
|
||||
);
|
||||
assert_eq!(
|
||||
Rank4::try_origin(RuntimeOrigin::signed(2)).unwrap_err().as_signed().unwrap(),
|
||||
2
|
||||
);
|
||||
assert_eq!(
|
||||
Rank4::try_origin(RuntimeOrigin::signed(3)).unwrap_err().as_signed().unwrap(),
|
||||
3
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user