Skip to content

Commit 2f9a0b7

Browse files
committed
test: reset manager
1 parent cb1bdd5 commit 2f9a0b7

File tree

2 files changed

+92
-1
lines changed

2 files changed

+92
-1
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
mod burn_into;
22
mod create_pool;
33
mod mint_into;
4+
mod reset_manager;
45
mod set_lock;
56
mod swap_into;
6-
77
mod unlock;
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
use frame_support::{assert_err, assert_ok};
2+
use frame_system::RawOrigin;
3+
4+
use crate::{mock::*, types::PoolStatus, Error as BondingPalletErrors, Event as BondingPalletEvents, Pools};
5+
6+
#[test]
7+
fn changes_manager() {
8+
let curve = get_linear_bonding_curve();
9+
10+
let pool_details = generate_pool_details(
11+
vec![0],
12+
curve,
13+
false,
14+
Some(PoolStatus::Active),
15+
Some(ACCOUNT_00),
16+
None,
17+
None,
18+
);
19+
let pool_id = calculate_pool_id(&[0]);
20+
ExtBuilder::default()
21+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
22+
.build()
23+
.execute_with(|| {
24+
let origin = RawOrigin::Signed(ACCOUNT_00).into();
25+
assert_ok!(BondingPallet::reset_manager(origin, pool_id.clone(), Some(ACCOUNT_01)));
26+
27+
System::assert_has_event(
28+
BondingPalletEvents::ManagerUpdated {
29+
id: pool_id.clone(),
30+
manager: Some(ACCOUNT_01),
31+
}
32+
.into(),
33+
);
34+
35+
let new_details = Pools::<Test>::get(&pool_id).unwrap();
36+
assert_eq!(new_details.manager, Some(ACCOUNT_01));
37+
assert_eq!(new_details.owner, pool_details.owner)
38+
})
39+
}
40+
41+
#[test]
42+
fn only_manager_can_change_manager() {
43+
let curve = get_linear_bonding_curve();
44+
45+
let manager = AccountId::new([10u8; 32]);
46+
let pool_details = generate_pool_details(
47+
vec![0],
48+
curve,
49+
false,
50+
Some(PoolStatus::Active),
51+
Some(manager.clone()),
52+
None,
53+
Some(ACCOUNT_00),
54+
);
55+
let pool_id = calculate_pool_id(&[0]);
56+
ExtBuilder::default()
57+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
58+
.build()
59+
.execute_with(|| {
60+
let owner_origin = RawOrigin::Signed(ACCOUNT_00).into();
61+
let other_origin = RawOrigin::Signed(ACCOUNT_01).into();
62+
63+
assert_err!(
64+
BondingPallet::reset_manager(owner_origin, pool_id.clone(), Some(ACCOUNT_00)),
65+
BondingPalletErrors::<Test>::NoPermission
66+
);
67+
68+
assert_err!(
69+
BondingPallet::reset_manager(other_origin, pool_id.clone(), Some(ACCOUNT_00)),
70+
BondingPalletErrors::<Test>::NoPermission
71+
);
72+
73+
let new_details = Pools::<Test>::get(&pool_id).unwrap();
74+
assert_eq!(new_details.manager, Some(manager));
75+
})
76+
}
77+
78+
#[test]
79+
fn cant_change_manager_if_pool_nonexistent() {
80+
let pool_id = calculate_pool_id(&[0]);
81+
ExtBuilder::default().build().execute_with(|| {
82+
let origin = RawOrigin::Signed(ACCOUNT_00).into();
83+
84+
assert!(Pools::<Test>::get(&pool_id).is_none());
85+
86+
assert_err!(
87+
BondingPallet::reset_manager(origin, pool_id.clone(), Some(ACCOUNT_00)),
88+
BondingPalletErrors::<Test>::PoolUnknown
89+
);
90+
})
91+
}

0 commit comments

Comments
 (0)