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