1
- use primitives:: channel:: Channel ;
2
- use primitves:: { BigNum } ;
3
-
4
1
use std:: collections:: BTreeMap ;
5
2
6
- use crate :: { BigNum , Channel , DomainError , ValidatorDesc } ;
7
3
use num:: rational:: Ratio ;
4
+ use primitives:: { BigNum , Channel , DomainError , ValidatorDesc } ;
8
5
9
6
pub type BalancesMap = BTreeMap < String , BigNum > ;
10
7
@@ -53,7 +50,7 @@ fn distribute_fee<'a>(
53
50
54
51
if fee_rounded > 0 . into ( ) {
55
52
let entry = balances
56
- . entry ( validator. id . clone ( ) . into ( ) )
53
+ . entry ( validator. id . clone ( ) )
57
54
. or_insert_with ( || 0 . into ( ) ) ;
58
55
59
56
* entry += & fee_rounded;
@@ -137,8 +134,9 @@ impl Distribution {
137
134
#[ cfg( test) ]
138
135
mod test {
139
136
use super :: * ;
140
- use crate :: channel:: fixtures:: { get_channel, get_channel_spec, ValidatorsOption } ;
141
- use crate :: validator:: fixtures:: get_validator;
137
+ use primitives:: util:: tests:: prep_db:: {
138
+ DUMMY_CHANNEL , DUMMY_VALIDATOR_FOLLOWER , DUMMY_VALIDATOR_LEADER , IDS ,
139
+ } ;
142
140
143
141
mod applying_fee_returns_the_same_tree_with_zero_fees {
144
142
use super :: * ;
@@ -199,27 +197,47 @@ mod test {
199
197
}
200
198
201
199
fn get_zero_fee_channel ( ) -> Channel {
202
- let leader = get_validator ( "one" , Some ( 0 . into ( ) ) ) ;
203
- let follower = get_validator ( "two" , Some ( 0 . into ( ) ) ) ;
204
-
205
- let spec = get_channel_spec ( ValidatorsOption :: Pair { leader, follower } ) ;
206
- let mut channel = get_channel ( "zero fees" , & None , Some ( spec) ) ;
207
- channel. deposit_amount = 100_000 . into ( ) ;
208
-
209
- channel
200
+ let leader = ValidatorDesc {
201
+ fee : 0 . into ( ) ,
202
+ ..DUMMY_VALIDATOR_LEADER . clone ( )
203
+ } ;
204
+ let follower = ValidatorDesc {
205
+ fee : 0 . into ( ) ,
206
+ ..DUMMY_VALIDATOR_FOLLOWER . clone ( )
207
+ } ;
208
+
209
+ let mut spec = DUMMY_CHANNEL . spec . clone ( ) ;
210
+ spec. validators = [ leader, follower] . into ( ) ;
211
+
212
+ Channel {
213
+ deposit_amount : 100_000 . into ( ) ,
214
+ spec,
215
+ ..DUMMY_CHANNEL . clone ( )
216
+ }
210
217
}
211
218
}
212
219
213
220
mod applying_fee_correctly {
214
221
use super :: * ;
215
222
216
223
fn setup_balances_after_fee ( balances_map : BalancesMap ) -> BalancesMap {
217
- let leader = get_validator ( "one" , Some ( 50 . into ( ) ) ) ;
218
- let follower = get_validator ( "two" , Some ( 50 . into ( ) ) ) ;
219
-
220
- let spec = get_channel_spec ( ValidatorsOption :: Pair { leader, follower } ) ;
221
- let mut channel = get_channel ( "apply fees" , & None , Some ( spec) ) ;
222
- channel. deposit_amount = 10_000 . into ( ) ;
224
+ let leader = ValidatorDesc {
225
+ fee : 50 . into ( ) ,
226
+ ..DUMMY_VALIDATOR_LEADER . clone ( )
227
+ } ;
228
+ let follower = ValidatorDesc {
229
+ fee : 50 . into ( ) ,
230
+ ..DUMMY_VALIDATOR_FOLLOWER . clone ( )
231
+ } ;
232
+
233
+ let mut spec = DUMMY_CHANNEL . spec . clone ( ) ;
234
+ spec. validators = [ leader, follower] . into ( ) ;
235
+
236
+ let channel = Channel {
237
+ deposit_amount : 10_000 . into ( ) ,
238
+ spec,
239
+ ..DUMMY_CHANNEL . clone ( )
240
+ } ;
223
241
224
242
let balances_after_fee = get_balances_after_fees_tree ( & balances_map, & channel)
225
243
. expect ( "Calculation of fees failed" ) ;
@@ -239,8 +257,8 @@ mod test {
239
257
let expected_balances: BalancesMap = vec ! [
240
258
( "a" . to_string( ) , 990 . into( ) ) ,
241
259
( "b" . to_string( ) , 1_188 . into( ) ) ,
242
- ( "one" . to_string ( ) , 11 . into( ) ) ,
243
- ( "two" . into ( ) , 11 . into( ) ) ,
260
+ ( IDS . get ( "leader" ) . unwrap ( ) . to_owned ( ) , 11 . into( ) ) ,
261
+ ( IDS . get ( "follower" ) . unwrap ( ) . to_owned ( ) , 11 . into( ) ) ,
244
262
]
245
263
. into_iter ( )
246
264
. collect ( ) ;
@@ -263,16 +281,16 @@ mod test {
263
281
let balances_map = vec ! [
264
282
( "a" . to_string( ) , 100 . into( ) ) ,
265
283
( "b" . to_string( ) , 2_000 . into( ) ) ,
266
- ( "one" . to_string ( ) , 200 . into( ) ) ,
284
+ ( IDS . get ( "leader" ) . unwrap ( ) . to_owned ( ) , 200 . into( ) ) ,
267
285
]
268
286
. into_iter ( )
269
287
. collect ( ) ;
270
288
271
289
let expected_balances: BalancesMap = vec ! [
272
290
( "a" . to_string( ) , 99 . into( ) ) ,
273
291
( "b" . to_string( ) , 1_980 . into( ) ) ,
274
- ( "one" . to_string ( ) , 209 . into( ) ) ,
275
- ( "two" . into ( ) , 11 . into( ) ) ,
292
+ ( IDS . get ( "leader" ) . unwrap ( ) . to_owned ( ) , 209 . into( ) ) ,
293
+ ( IDS . get ( "follower" ) . unwrap ( ) . to_owned ( ) , 11 . into( ) ) ,
276
294
]
277
295
. into_iter ( )
278
296
. collect ( ) ;
@@ -309,8 +327,8 @@ mod test {
309
327
( "c" . to_string( ) , 693 . into( ) ) ,
310
328
( "d" . to_string( ) , 4_950 . into( ) ) ,
311
329
( "e" . to_string( ) , 3_960 . into( ) ) ,
312
- ( "one" . to_string ( ) , 51 . into( ) ) ,
313
- ( "two" . to_string ( ) , 50 . into( ) ) ,
330
+ ( IDS . get ( "leader" ) . unwrap ( ) . to_owned ( ) , 51 . into( ) ) ,
331
+ ( IDS . get ( "follower" ) . unwrap ( ) . to_owned ( ) , 50 . into( ) ) ,
314
332
]
315
333
. into_iter ( )
316
334
. collect ( ) ;
@@ -335,11 +353,23 @@ mod test {
335
353
. into_iter ( )
336
354
. collect ( ) ;
337
355
338
- let leader = get_validator ( "one" , Some ( 600 . into ( ) ) ) ;
339
- let follower = get_validator ( "two" , Some ( 600 . into ( ) ) ) ;
340
- let spec = get_channel_spec ( ValidatorsOption :: Pair { leader, follower } ) ;
341
- let mut channel = get_channel ( "zero fees" , & None , Some ( spec) ) ;
342
- channel. deposit_amount = 1_000 . into ( ) ;
356
+ let leader = ValidatorDesc {
357
+ fee : 600 . into ( ) ,
358
+ ..DUMMY_VALIDATOR_LEADER . clone ( )
359
+ } ;
360
+ let follower = ValidatorDesc {
361
+ fee : 600 . into ( ) ,
362
+ ..DUMMY_VALIDATOR_FOLLOWER . clone ( )
363
+ } ;
364
+
365
+ let mut spec = DUMMY_CHANNEL . spec . clone ( ) ;
366
+ spec. validators = [ leader, follower] . into ( ) ;
367
+
368
+ let channel = Channel {
369
+ deposit_amount : 1_000 . into ( ) ,
370
+ spec,
371
+ ..DUMMY_CHANNEL . clone ( )
372
+ } ;
343
373
344
374
let domain_error = get_balances_after_fees_tree ( & balances_map, & channel)
345
375
. expect_err ( "Should be DomainError not allow fees sum to exceed the deposit" ) ;
@@ -351,9 +381,4 @@ mod test {
351
381
domain_error
352
382
) ;
353
383
}
354
-
355
384
}
356
-
357
- // pub fn get_balances_after_fees_tree(mut balances: &HashMap<String, String>, channel: &Channel) {
358
- // unimplemented!()
359
- // }
0 commit comments