Skip to content

Commit 2225c1b

Browse files
committed
Add fungibles::Unbalanced tests
1 parent 2c48b62 commit 2225c1b

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

tokens/src/tests_fungibles.rs

+72
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use super::*;
66
use frame_support::{assert_noop, assert_ok};
77
use mock::*;
8+
use sp_runtime::{ArithmeticError, TokenError};
89

910
#[test]
1011
fn fungibles_inspect_trait_should_work() {
@@ -54,13 +55,84 @@ fn fungibles_unbalanced_trait_should_work() {
5455
.balances(vec![(ALICE, DOT, 100)])
5556
.build()
5657
.execute_with(|| {
58+
// set_balance
5759
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 100);
5860
assert_ok!(<Tokens as fungibles::Unbalanced<_>>::set_balance(DOT, &ALICE, 10));
5961
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 10);
6062

63+
// set_total_issuance
6164
assert_eq!(<Tokens as fungibles::Inspect<_>>::total_issuance(DOT), 100);
6265
<Tokens as fungibles::Unbalanced<_>>::set_total_issuance(DOT, 10);
6366
assert_eq!(<Tokens as fungibles::Inspect<_>>::total_issuance(DOT), 10);
67+
68+
// decrease_balance
69+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 10);
70+
assert_noop!(
71+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance(DOT, &ALICE, 20),
72+
TokenError::NoFunds
73+
);
74+
assert_eq!(
75+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance(DOT, &ALICE, 5),
76+
Ok(5)
77+
);
78+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 5);
79+
// new balance < ExistentialDeposits, clean dust
80+
assert_eq!(
81+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance(DOT, &ALICE, 4),
82+
Ok(5)
83+
);
84+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 0);
85+
86+
// decrease_balance_at_most
87+
assert_ok!(<Tokens as fungibles::Unbalanced<_>>::set_balance(DOT, &ALICE, 10));
88+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 10);
89+
assert_eq!(
90+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance_at_most(DOT, &ALICE, 20),
91+
10
92+
);
93+
assert_ok!(<Tokens as fungibles::Unbalanced<_>>::set_balance(DOT, &ALICE, 10));
94+
assert_eq!(
95+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance_at_most(DOT, &ALICE, 5),
96+
5
97+
);
98+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 5);
99+
// new balance < ExistentialDeposits, clean dust
100+
assert_eq!(
101+
<Tokens as fungibles::Unbalanced<_>>::decrease_balance_at_most(DOT, &ALICE, 4),
102+
5
103+
);
104+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 0);
105+
106+
// increase_balance
107+
assert_noop!(
108+
<Tokens as fungibles::Unbalanced<_>>::increase_balance(DOT, &ALICE, 1),
109+
TokenError::BelowMinimum
110+
);
111+
assert_eq!(
112+
<Tokens as fungibles::Unbalanced<_>>::increase_balance(DOT, &ALICE, 2),
113+
Ok(2)
114+
);
115+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 2);
116+
assert_noop!(
117+
<Tokens as fungibles::Unbalanced<_>>::increase_balance(DOT, &ALICE, Balance::MAX),
118+
ArithmeticError::Overflow
119+
);
120+
121+
// increase_balance_at_most
122+
assert_ok!(<Tokens as fungibles::Unbalanced<_>>::set_balance(DOT, &ALICE, 0));
123+
assert_eq!(
124+
<Tokens as fungibles::Unbalanced<_>>::increase_balance_at_most(DOT, &ALICE, 1),
125+
0
126+
);
127+
assert_eq!(
128+
<Tokens as fungibles::Unbalanced<_>>::increase_balance_at_most(DOT, &ALICE, 2),
129+
2
130+
);
131+
assert_eq!(<Tokens as fungibles::Inspect<_>>::balance(DOT, &ALICE), 2);
132+
assert_eq!(
133+
<Tokens as fungibles::Unbalanced<_>>::increase_balance_at_most(DOT, &ALICE, Balance::MAX),
134+
Balance::MAX - 2
135+
);
64136
});
65137
}
66138

0 commit comments

Comments
 (0)