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