Skip to content

Commit 4d3da16

Browse files
committed
test: reset_team
1 parent 2f9a0b7 commit 4d3da16

File tree

2 files changed

+172
-0
lines changed

2 files changed

+172
-0
lines changed

pallets/pallet-bonded-coins/src/tests/transactions/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ mod burn_into;
22
mod create_pool;
33
mod mint_into;
44
mod reset_manager;
5+
mod reset_team;
56
mod set_lock;
67
mod swap_into;
78
mod unlock;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
use frame_support::{assert_err, assert_ok};
2+
use frame_system::RawOrigin;
3+
use pallet_assets::Event as AssetsPalletEvents;
4+
5+
use crate::{
6+
mock::*,
7+
types::{PoolManagingTeam, PoolStatus},
8+
Error as BondingPalletErrors, Pools,
9+
};
10+
11+
#[test]
12+
fn resets_team() {
13+
let pool_details = generate_pool_details(
14+
vec![0],
15+
get_linear_bonding_curve(),
16+
false,
17+
Some(PoolStatus::Active),
18+
Some(ACCOUNT_00),
19+
None,
20+
None,
21+
);
22+
let pool_id = calculate_pool_id(&[0]);
23+
24+
ExtBuilder::default()
25+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
26+
.build()
27+
.execute_with(|| {
28+
let manager_origin = RawOrigin::Signed(ACCOUNT_00).into();
29+
30+
assert_ok!(BondingPallet::reset_team(
31+
manager_origin,
32+
pool_id.clone(),
33+
PoolManagingTeam {
34+
admin: ACCOUNT_00,
35+
freezer: ACCOUNT_01,
36+
},
37+
0
38+
));
39+
40+
System::assert_has_event(
41+
AssetsPalletEvents::<Test>::TeamChanged {
42+
asset_id: 0,
43+
issuer: pool_id,
44+
admin: ACCOUNT_00,
45+
freezer: ACCOUNT_01,
46+
}
47+
.into(),
48+
);
49+
})
50+
}
51+
52+
#[test]
53+
fn does_not_change_team_when_not_live() {
54+
let pool_details = generate_pool_details(
55+
vec![0],
56+
get_linear_bonding_curve(),
57+
false,
58+
Some(PoolStatus::Refunding),
59+
Some(ACCOUNT_00),
60+
None,
61+
None,
62+
);
63+
let pool_id = calculate_pool_id(&[0]);
64+
65+
ExtBuilder::default()
66+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
67+
.build()
68+
.execute_with(|| {
69+
let manager_origin = RawOrigin::Signed(ACCOUNT_00).into();
70+
71+
assert_err!(
72+
BondingPallet::reset_team(
73+
manager_origin,
74+
pool_id.clone(),
75+
PoolManagingTeam {
76+
admin: ACCOUNT_00,
77+
freezer: ACCOUNT_00,
78+
},
79+
0
80+
),
81+
BondingPalletErrors::<Test>::PoolNotLive
82+
);
83+
})
84+
}
85+
86+
#[test]
87+
fn only_manager_can_change_team() {
88+
let curve = get_linear_bonding_curve();
89+
90+
let manager = AccountId::new([10u8; 32]);
91+
let pool_details = generate_pool_details(
92+
vec![0],
93+
curve,
94+
false,
95+
Some(PoolStatus::Active),
96+
Some(manager.clone()),
97+
None,
98+
Some(ACCOUNT_00),
99+
);
100+
let pool_id = calculate_pool_id(&[0]);
101+
ExtBuilder::default()
102+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
103+
.build()
104+
.execute_with(|| {
105+
let owner_origin = RawOrigin::Signed(ACCOUNT_00).into();
106+
let other_origin = RawOrigin::Signed(ACCOUNT_01).into();
107+
108+
assert_err!(
109+
BondingPallet::reset_team(
110+
owner_origin,
111+
pool_id.clone(),
112+
PoolManagingTeam {
113+
admin: ACCOUNT_00,
114+
freezer: ACCOUNT_00,
115+
},
116+
0
117+
),
118+
BondingPalletErrors::<Test>::NoPermission
119+
);
120+
121+
assert_err!(
122+
BondingPallet::reset_team(
123+
other_origin,
124+
pool_id.clone(),
125+
PoolManagingTeam {
126+
admin: ACCOUNT_00,
127+
freezer: ACCOUNT_00,
128+
},
129+
0
130+
),
131+
BondingPalletErrors::<Test>::NoPermission
132+
);
133+
134+
let new_details = Pools::<Test>::get(&pool_id).unwrap();
135+
assert_eq!(new_details.manager, Some(manager));
136+
})
137+
}
138+
139+
#[test]
140+
fn handles_currency_idx_out_of_bounds() {
141+
let pool_details = generate_pool_details(
142+
vec![0],
143+
get_linear_bonding_curve(),
144+
false,
145+
Some(PoolStatus::Active),
146+
Some(ACCOUNT_00),
147+
None,
148+
None,
149+
);
150+
let pool_id = calculate_pool_id(&[0]);
151+
152+
ExtBuilder::default()
153+
.with_pools(vec![(pool_id.clone(), pool_details.clone())])
154+
.build()
155+
.execute_with(|| {
156+
let manager_origin = RawOrigin::Signed(ACCOUNT_00).into();
157+
158+
assert_err!(
159+
BondingPallet::reset_team(
160+
manager_origin,
161+
pool_id.clone(),
162+
PoolManagingTeam {
163+
admin: ACCOUNT_00,
164+
freezer: ACCOUNT_00,
165+
},
166+
2
167+
),
168+
BondingPalletErrors::<Test>::IndexOutOfBounds
169+
);
170+
})
171+
}

0 commit comments

Comments
 (0)