@@ -1833,7 +1833,7 @@ fn is_gossip_msg(type_id: u16) -> bool {
1833
1833
#[ cfg( test) ]
1834
1834
mod tests {
1835
1835
use ln:: peer_handler:: { PeerManager , MessageHandler , SocketDescriptor , IgnoringMessageHandler , filter_addresses} ;
1836
- use ln:: msgs;
1836
+ use ln:: { msgs, wire } ;
1837
1837
use ln:: msgs:: NetAddress ;
1838
1838
use util:: events;
1839
1839
use util:: test_utils;
@@ -1946,6 +1946,48 @@ mod tests {
1946
1946
assert_eq ! ( peers[ 0 ] . peers. read( ) . unwrap( ) . len( ) , 0 ) ;
1947
1947
}
1948
1948
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
+
1949
1991
#[ test]
1950
1992
fn test_timer_tick_occurred ( ) {
1951
1993
// Create peers, a vector of two peer managers, perform initial set up and check that peers[0] has one Peer.
0 commit comments