Skip to content

Commit 1695dca

Browse files
committed
test: reset manager
1 parent aa6555d commit 1695dca

File tree

2 files changed

+96
-1
lines changed

2 files changed

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

0 commit comments

Comments
 (0)