@@ -364,77 +364,62 @@ impl ChainWatchInterfaceUtil {
364
364
365
365
#[ cfg( test) ]
366
366
mod tests {
367
- use ln:: functional_test_utils:: { create_chanmon_cfgs, create_node_cfgs} ;
367
+ use bitcoin:: blockdata:: block:: BlockHeader ;
368
+ use bitcoin:: blockdata:: transaction:: Transaction ;
368
369
use super :: { BlockNotifier , ChainListener } ;
369
370
use std:: ptr;
370
371
372
+ struct TestChainListener ( u8 ) ;
373
+
374
+ impl ChainListener for TestChainListener {
375
+ fn block_connected ( & self , _header : & BlockHeader , _txdata : & [ ( usize , & Transaction ) ] , _height : u32 ) { }
376
+ fn block_disconnected ( & self , _header : & BlockHeader , _disconnected_height : u32 ) { }
377
+ }
378
+
371
379
#[ test]
372
380
fn register_listener_test ( ) {
373
- let chanmon_cfgs = create_chanmon_cfgs ( 1 ) ;
374
- let node_cfgs = create_node_cfgs ( 1 , & chanmon_cfgs) ;
375
381
let block_notifier = BlockNotifier :: new ( ) ;
376
382
assert_eq ! ( block_notifier. listeners. lock( ) . unwrap( ) . len( ) , 0 ) ;
377
- let listener = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
378
- block_notifier. register_listener ( listener) ;
383
+ let listener = & TestChainListener ( 0 ) ;
384
+ block_notifier. register_listener ( listener as & ChainListener ) ;
379
385
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
380
386
assert_eq ! ( vec. len( ) , 1 ) ;
381
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
382
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener) ) ) ;
387
+ let item = vec. first ( ) . unwrap ( ) ;
388
+ assert ! ( ptr:: eq( & ( * * item) , listener) ) ;
383
389
}
384
390
385
391
#[ test]
386
392
fn unregister_single_listener_test ( ) {
387
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
388
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
389
393
let block_notifier = BlockNotifier :: new ( ) ;
390
- let listener1 = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
391
- let listener2 = & node_cfgs [ 1 ] . chan_monitor . simple_monitor as & ChainListener ;
392
- block_notifier. register_listener ( listener1) ;
393
- block_notifier. register_listener ( listener2) ;
394
+ let listener1 = & TestChainListener ( 1 ) ;
395
+ let listener2 = & TestChainListener ( 2 ) ;
396
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
397
+ block_notifier. register_listener ( listener2 as & ChainListener ) ;
394
398
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
395
399
assert_eq ! ( vec. len( ) , 2 ) ;
396
400
drop ( vec) ;
397
401
block_notifier. unregister_listener ( listener1) ;
398
402
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
399
403
assert_eq ! ( vec. len( ) , 1 ) ;
400
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
401
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener2) ) ) ;
402
- }
403
-
404
- #[ test]
405
- fn unregister_single_listener_ref_test ( ) {
406
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
407
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
408
- let block_notifier = BlockNotifier :: new ( ) ;
409
- block_notifier. register_listener ( & node_cfgs[ 0 ] . chan_monitor . simple_monitor as & ChainListener ) ;
410
- block_notifier. register_listener ( & node_cfgs[ 1 ] . chan_monitor . simple_monitor as & ChainListener ) ;
411
- let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
412
- assert_eq ! ( vec. len( ) , 2 ) ;
413
- drop ( vec) ;
414
- block_notifier. unregister_listener ( & node_cfgs[ 0 ] . chan_monitor . simple_monitor ) ;
415
- let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
416
- assert_eq ! ( vec. len( ) , 1 ) ;
417
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
418
- assert ! ( ptr:: eq( & ( * * item) , & ( * & node_cfgs[ 1 ] . chan_monitor. simple_monitor) ) ) ;
404
+ let item = vec. first ( ) . unwrap ( ) ;
405
+ assert ! ( ptr:: eq( & ( * * item) , listener2) ) ;
419
406
}
420
407
421
408
#[ test]
422
409
fn unregister_multiple_of_the_same_listeners_test ( ) {
423
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
424
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
425
410
let block_notifier = BlockNotifier :: new ( ) ;
426
- let listener1 = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
427
- let listener2 = & node_cfgs [ 1 ] . chan_monitor . simple_monitor as & ChainListener ;
428
- block_notifier. register_listener ( listener1) ;
429
- block_notifier. register_listener ( listener1) ;
430
- block_notifier. register_listener ( listener2) ;
411
+ let listener1 = & TestChainListener ( 1 ) ;
412
+ let listener2 = & TestChainListener ( 2 ) ;
413
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
414
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
415
+ block_notifier. register_listener ( listener2 as & ChainListener ) ;
431
416
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
432
417
assert_eq ! ( vec. len( ) , 3 ) ;
433
418
drop ( vec) ;
434
419
block_notifier. unregister_listener ( listener1) ;
435
420
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
436
421
assert_eq ! ( vec. len( ) , 1 ) ;
437
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
438
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener2) ) ) ;
422
+ let item = vec. first ( ) . unwrap ( ) ;
423
+ assert ! ( ptr:: eq( & ( * * item) , listener2) ) ;
439
424
}
440
425
}
0 commit comments