@@ -1833,7 +1833,7 @@ fn is_gossip_msg(type_id: u16) -> bool {
18331833#[ cfg( test) ]
18341834mod tests {
18351835 use ln:: peer_handler:: { PeerManager , MessageHandler , SocketDescriptor , IgnoringMessageHandler , filter_addresses} ;
1836- use ln:: msgs;
1836+ use ln:: { msgs, wire } ;
18371837 use ln:: msgs:: NetAddress ;
18381838 use util:: events;
18391839 use util:: test_utils;
@@ -1946,6 +1946,48 @@ mod tests {
19461946 assert_eq ! ( peers[ 0 ] . peers. read( ) . unwrap( ) . len( ) , 0 ) ;
19471947 }
19481948
1949+ #[ test]
1950+ fn test_send_simple_msg ( ) {
1951+ // Simple test which builds a network of PeerManager, connects and brings them to NoiseState::Finished and
1952+ // push a message from one peer to another.
1953+ let cfgs = create_peermgr_cfgs ( 2 ) ;
1954+ let a_chan_handler = test_utils:: TestChannelMessageHandler :: new ( ) ;
1955+ let b_chan_handler = test_utils:: TestChannelMessageHandler :: new ( ) ;
1956+ let mut peers = create_network ( 2 , & cfgs) ;
1957+ let ( fd_a, mut fd_b) = establish_connection ( & peers[ 0 ] , & peers[ 1 ] ) ;
1958+ assert_eq ! ( peers[ 0 ] . peers. read( ) . unwrap( ) . len( ) , 1 ) ;
1959+
1960+ let secp_ctx = Secp256k1 :: new ( ) ;
1961+ let their_id = PublicKey :: from_secret_key ( & secp_ctx, & peers[ 1 ] . our_node_secret ) ;
1962+
1963+ let msg = msgs:: Shutdown { channel_id : [ 42 ; 32 ] , scriptpubkey : bitcoin:: Script :: new ( ) } ;
1964+ a_chan_handler. pending_events . lock ( ) . unwrap ( ) . push ( events:: MessageSendEvent :: SendShutdown {
1965+ node_id : their_id, msg : msg. clone ( )
1966+ } ) ;
1967+ peers[ 0 ] . message_handler . chan_handler = & a_chan_handler;
1968+
1969+ b_chan_handler. expect_receive_msg ( wire:: Message :: Shutdown ( msg) ) ;
1970+ peers[ 1 ] . message_handler . chan_handler = & b_chan_handler;
1971+
1972+ peers[ 0 ] . process_events ( ) ;
1973+
1974+ let a_data = fd_a. outbound_data . lock ( ) . unwrap ( ) . split_off ( 0 ) ;
1975+ assert_eq ! ( peers[ 1 ] . read_event( & mut fd_b, & a_data) . unwrap( ) , false ) ;
1976+ }
1977+
1978+ #[ test]
1979+ fn test_disconnect_all_peer ( ) {
1980+ // Simple test which builds a network of PeerManager, connects and brings them to NoiseState::Finished and
1981+ // then calls disconnect_all_peers
1982+ let cfgs = create_peermgr_cfgs ( 2 ) ;
1983+ let peers = create_network ( 2 , & cfgs) ;
1984+ establish_connection ( & peers[ 0 ] , & peers[ 1 ] ) ;
1985+ assert_eq ! ( peers[ 0 ] . peers. read( ) . unwrap( ) . len( ) , 1 ) ;
1986+
1987+ peers[ 0 ] . disconnect_all_peers ( ) ;
1988+ assert_eq ! ( peers[ 0 ] . peers. read( ) . unwrap( ) . len( ) , 0 ) ;
1989+ }
1990+
19491991 #[ test]
19501992 fn test_timer_tick_occurred ( ) {
19511993 // Create peers, a vector of two peer managers, perform initial set up and check that peers[0] has one Peer.
0 commit comments