@@ -29,13 +29,19 @@ fn setup(env: &Env) -> (Address, ShadeClient<'_>, Address) {
2929#[ test]
3030fn test_calculate_fee_returns_zero_when_no_fee_set ( ) {
3131 let env = Env :: default ( ) ;
32- let ( _admin , client, token) = setup ( & env) ;
32+ let ( admin , client, token) = setup ( & env) ;
3333 let contract_id = client. address . clone ( ) ;
3434
3535 env. as_contract ( & contract_id, || {
36- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 0 ) , 0 ) ;
37- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 1_000 ) , 0 ) ;
38- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 1_000_000 ) , 0 ) ;
36+ assert_eq ! ( admin_component:: calculate_fee( & env, & admin, & token, 0 ) , 0 ) ;
37+ assert_eq ! (
38+ admin_component:: calculate_fee( & env, & admin, & token, 1_000 ) ,
39+ 0
40+ ) ;
41+ assert_eq ! (
42+ admin_component:: calculate_fee( & env, & admin, & token, 1_000_000 ) ,
43+ 0
44+ ) ;
3945 } ) ;
4046}
4147
@@ -49,7 +55,7 @@ fn test_calculate_fee_zero_amount() {
4955 client. set_fee ( & admin, & token, & 500 ) ; // 5%
5056
5157 env. as_contract ( & contract_id, || {
52- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 0 ) , 0 ) ;
58+ assert_eq ! ( admin_component:: calculate_fee( & env, & admin , & token, 0 ) , 0 ) ;
5359 } ) ;
5460}
5561
@@ -63,7 +69,10 @@ fn test_calculate_fee_5_percent() {
6369 client. set_fee ( & admin, & token, & 500 ) ;
6470
6571 env. as_contract ( & contract_id, || {
66- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 1_000 ) , 50 ) ;
72+ assert_eq ! (
73+ admin_component:: calculate_fee( & env, & admin, & token, 1_000 ) ,
74+ 50
75+ ) ;
6776 } ) ;
6877}
6978
@@ -77,7 +86,10 @@ fn test_calculate_fee_1_percent() {
7786 client. set_fee ( & admin, & token, & 100 ) ;
7887
7988 env. as_contract ( & contract_id, || {
80- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 10_000 ) , 100 ) ;
89+ assert_eq ! (
90+ admin_component:: calculate_fee( & env, & admin, & token, 10_000 ) ,
91+ 100
92+ ) ;
8193 } ) ;
8294}
8395
@@ -91,7 +103,10 @@ fn test_calculate_fee_10_percent() {
91103 client. set_fee ( & admin, & token, & 1_000 ) ;
92104
93105 env. as_contract ( & contract_id, || {
94- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 5_000 ) , 500 ) ;
106+ assert_eq ! (
107+ admin_component:: calculate_fee( & env, & admin, & token, 5_000 ) ,
108+ 500
109+ ) ;
95110 } ) ;
96111}
97112
@@ -105,7 +120,10 @@ fn test_calculate_fee_100_percent() {
105120 client. set_fee ( & admin, & token, & 10_000 ) ;
106121
107122 env. as_contract ( & contract_id, || {
108- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 1_000 ) , 1_000 ) ;
123+ assert_eq ! (
124+ admin_component:: calculate_fee( & env, & admin, & token, 1_000 ) ,
125+ 1_000
126+ ) ;
109127 } ) ;
110128}
111129
@@ -121,10 +139,16 @@ fn test_calculate_fee_truncates_fractional_result() {
121139
122140 env. as_contract ( & contract_id, || {
123141 // Too small to produce a whole unit
124- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 1 ) , 0 ) ;
125- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 9_999 ) , 0 ) ;
142+ assert_eq ! ( admin_component:: calculate_fee( & env, & admin, & token, 1 ) , 0 ) ;
143+ assert_eq ! (
144+ admin_component:: calculate_fee( & env, & admin, & token, 9_999 ) ,
145+ 0
146+ ) ;
126147 // Exactly at the boundary: 10_000 * 1 / 10_000 = 1
127- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 10_000 ) , 1 ) ;
148+ assert_eq ! (
149+ admin_component:: calculate_fee( & env, & admin, & token, 10_000 ) ,
150+ 1
151+ ) ;
128152 } ) ;
129153}
130154
@@ -138,13 +162,19 @@ fn test_calculate_fee_reflects_updated_fee() {
138162 client. set_fee ( & admin, & token, & 200 ) ; // 2%
139163
140164 env. as_contract ( & contract_id, || {
141- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 10_000 ) , 200 ) ;
165+ assert_eq ! (
166+ admin_component:: calculate_fee( & env, & admin, & token, 10_000 ) ,
167+ 200
168+ ) ;
142169 } ) ;
143170
144171 client. set_fee ( & admin, & token, & 500 ) ; // updated to 5%
145172
146173 env. as_contract ( & contract_id, || {
147- assert_eq ! ( admin_component:: calculate_fee( & env, & token, 10_000 ) , 500 ) ;
174+ assert_eq ! (
175+ admin_component:: calculate_fee( & env, & admin, & token, 10_000 ) ,
176+ 500
177+ ) ;
148178 } ) ;
149179}
150180
@@ -160,7 +190,7 @@ fn test_calculate_fee_large_amount() {
160190
161191 env. as_contract ( & contract_id, || {
162192 assert_eq ! (
163- admin_component:: calculate_fee( & env, & token, 1_000_000_000 ) ,
193+ admin_component:: calculate_fee( & env, & admin , & token, 1_000_000_000 ) ,
164194 25_000_000
165195 ) ;
166196 } ) ;
@@ -184,7 +214,13 @@ fn test_calculate_fee_per_token_independence() {
184214 client. set_fee ( & admin, & token_b, & 700 ) ; // 7%
185215
186216 env. as_contract ( & contract_id, || {
187- assert_eq ! ( admin_component:: calculate_fee( & env, & token_a, 10_000 ) , 300 ) ;
188- assert_eq ! ( admin_component:: calculate_fee( & env, & token_b, 10_000 ) , 700 ) ;
217+ assert_eq ! (
218+ admin_component:: calculate_fee( & env, & admin, & token_a, 10_000 ) ,
219+ 300
220+ ) ;
221+ assert_eq ! (
222+ admin_component:: calculate_fee( & env, & admin, & token_b, 10_000 ) ,
223+ 700
224+ ) ;
189225 } ) ;
190226}
0 commit comments