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