@@ -174,7 +174,7 @@ impl BackgroundProcessor {
174
174
Descriptor : ' static + SocketDescriptor + Send + Sync ,
175
175
CMH : ' static + Deref + Send + Sync ,
176
176
RMH : ' static + Deref + Send + Sync ,
177
- EH : ' static + EventHandler + Send + Sync ,
177
+ EH : ' static + EventHandler + Send ,
178
178
CMP : ' static + Send + ChannelManagerPersister < Signer , CW , T , K , F , L > ,
179
179
M : ' static + Deref < Target = ChainMonitor < Signer , CF , T , F , L , P > > + Send + Sync ,
180
180
CM : ' static + Deref < Target = ChannelManager < Signer , CW , T , K , F , L > > + Send + Sync ,
@@ -317,6 +317,8 @@ mod tests {
317
317
use lightning:: util:: events:: { Event , MessageSendEventsProvider , MessageSendEvent } ;
318
318
use lightning:: util:: ser:: Writeable ;
319
319
use lightning:: util:: test_utils;
320
+ use lightning_invoice:: payment:: { InvoicePayer , RetryAttempts } ;
321
+ use lightning_invoice:: utils:: DefaultRouter ;
320
322
use lightning_persister:: FilesystemPersister ;
321
323
use std:: fs;
322
324
use std:: path:: PathBuf ;
@@ -622,4 +624,20 @@ mod tests {
622
624
623
625
assert ! ( bg_processor. stop( ) . is_ok( ) ) ;
624
626
}
627
+
628
+ #[ test]
629
+ fn test_invoice_payer ( ) {
630
+ let nodes = create_nodes ( 2 , "test_invoice_payer" . to_string ( ) ) ;
631
+
632
+ // Initiate the background processors to watch each node.
633
+ let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
634
+ let persister = move |node : & ChannelManager < InMemorySigner , Arc < ChainMonitor > , Arc < test_utils:: TestBroadcaster > , Arc < KeysManager > , Arc < test_utils:: TestFeeEstimator > , Arc < test_utils:: TestLogger > > | FilesystemPersister :: persist_manager ( data_dir. clone ( ) , node) ;
635
+ let network_graph = Arc :: new ( NetworkGraph :: new ( genesis_block ( Network :: Testnet ) . header . block_hash ( ) ) ) ;
636
+ let router = DefaultRouter :: new ( network_graph, Arc :: clone ( & nodes[ 0 ] . logger ) ) ;
637
+ let scorer = Arc :: new ( Mutex :: new ( Scorer :: default ( ) ) ) ;
638
+ let invoice_payer = Arc :: new ( InvoicePayer :: new ( Arc :: clone ( & nodes[ 0 ] . node ) , router, scorer, Arc :: clone ( & nodes[ 0 ] . logger ) , |_: & _ | { } , RetryAttempts ( 2 ) ) ) ;
639
+ let event_handler = Arc :: clone ( & invoice_payer) ;
640
+ let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . net_graph_msg_handler . clone ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) ) ;
641
+ assert ! ( bg_processor. stop( ) . is_ok( ) ) ;
642
+ }
625
643
}
0 commit comments