@@ -390,77 +390,62 @@ impl ChainWatchInterfaceUtil {
390
390
391
391
#[ cfg( test) ]
392
392
mod tests {
393
- use ln:: functional_test_utils:: { create_chanmon_cfgs, create_node_cfgs} ;
393
+ use bitcoin:: blockdata:: block:: BlockHeader ;
394
+ use bitcoin:: blockdata:: transaction:: Transaction ;
394
395
use super :: { BlockNotifier , ChainListener } ;
395
396
use std:: ptr;
396
397
398
+ struct TestChainListener ( u8 ) ;
399
+
400
+ impl ChainListener for TestChainListener {
401
+ fn block_connected ( & self , _header : & BlockHeader , _txdata : & [ ( usize , & Transaction ) ] , _height : u32 ) { }
402
+ fn block_disconnected ( & self , _header : & BlockHeader , _disconnected_height : u32 ) { }
403
+ }
404
+
397
405
#[ test]
398
406
fn register_listener_test ( ) {
399
- let chanmon_cfgs = create_chanmon_cfgs ( 1 ) ;
400
- let node_cfgs = create_node_cfgs ( 1 , & chanmon_cfgs) ;
401
407
let block_notifier = BlockNotifier :: new ( ) ;
402
408
assert_eq ! ( block_notifier. listeners. lock( ) . unwrap( ) . len( ) , 0 ) ;
403
- let listener = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
404
- block_notifier. register_listener ( listener) ;
409
+ let listener = & TestChainListener ( 0 ) ;
410
+ block_notifier. register_listener ( listener as & ChainListener ) ;
405
411
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
406
412
assert_eq ! ( vec. len( ) , 1 ) ;
407
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
408
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener) ) ) ;
413
+ let item = vec. first ( ) . unwrap ( ) ;
414
+ assert ! ( ptr:: eq( & ( * * item) , listener) ) ;
409
415
}
410
416
411
417
#[ test]
412
418
fn unregister_single_listener_test ( ) {
413
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
414
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
415
419
let block_notifier = BlockNotifier :: new ( ) ;
416
- let listener1 = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
417
- let listener2 = & node_cfgs [ 1 ] . chan_monitor . simple_monitor as & ChainListener ;
418
- block_notifier. register_listener ( listener1) ;
419
- block_notifier. register_listener ( listener2) ;
420
+ let listener1 = & TestChainListener ( 1 ) ;
421
+ let listener2 = & TestChainListener ( 2 ) ;
422
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
423
+ block_notifier. register_listener ( listener2 as & ChainListener ) ;
420
424
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
421
425
assert_eq ! ( vec. len( ) , 2 ) ;
422
426
drop ( vec) ;
423
427
block_notifier. unregister_listener ( listener1) ;
424
428
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
425
429
assert_eq ! ( vec. len( ) , 1 ) ;
426
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
427
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener2) ) ) ;
428
- }
429
-
430
- #[ test]
431
- fn unregister_single_listener_ref_test ( ) {
432
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
433
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
434
- let block_notifier = BlockNotifier :: new ( ) ;
435
- block_notifier. register_listener ( & node_cfgs[ 0 ] . chan_monitor . simple_monitor as & ChainListener ) ;
436
- block_notifier. register_listener ( & node_cfgs[ 1 ] . chan_monitor . simple_monitor as & ChainListener ) ;
437
- let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
438
- assert_eq ! ( vec. len( ) , 2 ) ;
439
- drop ( vec) ;
440
- block_notifier. unregister_listener ( & node_cfgs[ 0 ] . chan_monitor . simple_monitor ) ;
441
- let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
442
- assert_eq ! ( vec. len( ) , 1 ) ;
443
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
444
- assert ! ( ptr:: eq( & ( * * item) , & ( * & node_cfgs[ 1 ] . chan_monitor. simple_monitor) ) ) ;
430
+ let item = vec. first ( ) . unwrap ( ) ;
431
+ assert ! ( ptr:: eq( & ( * * item) , listener2) ) ;
445
432
}
446
433
447
434
#[ test]
448
435
fn unregister_multiple_of_the_same_listeners_test ( ) {
449
- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
450
- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
451
436
let block_notifier = BlockNotifier :: new ( ) ;
452
- let listener1 = & node_cfgs [ 0 ] . chan_monitor . simple_monitor as & ChainListener ;
453
- let listener2 = & node_cfgs [ 1 ] . chan_monitor . simple_monitor as & ChainListener ;
454
- block_notifier. register_listener ( listener1) ;
455
- block_notifier. register_listener ( listener1) ;
456
- block_notifier. register_listener ( listener2) ;
437
+ let listener1 = & TestChainListener ( 1 ) ;
438
+ let listener2 = & TestChainListener ( 2 ) ;
439
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
440
+ block_notifier. register_listener ( listener1 as & ChainListener ) ;
441
+ block_notifier. register_listener ( listener2 as & ChainListener ) ;
457
442
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
458
443
assert_eq ! ( vec. len( ) , 3 ) ;
459
444
drop ( vec) ;
460
445
block_notifier. unregister_listener ( listener1) ;
461
446
let vec = block_notifier. listeners . lock ( ) . unwrap ( ) ;
462
447
assert_eq ! ( vec. len( ) , 1 ) ;
463
- let item = vec. first ( ) . clone ( ) . unwrap ( ) ;
464
- assert ! ( ptr:: eq( & ( * * item) , & ( * listener2) ) ) ;
448
+ let item = vec. first ( ) . unwrap ( ) ;
449
+ assert ! ( ptr:: eq( & ( * * item) , listener2) ) ;
465
450
}
466
451
}
0 commit comments