@@ -15199,9 +15199,26 @@ mod tests {
1519915199
1520015200 create_announced_chan_between_nodes(&nodes, 0, 1);
1520115201
15202- // Since we do not send peer storage, we manually simulate receiving a dummy
15203- // `PeerStorage` from the channel partner.
15204- nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15202+ let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15203+ let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15204+ assert_ne!(peer_storage_msg_events_node0.len(), 0);
15205+ assert_ne!(peer_storage_msg_events_node1.len(), 0);
15206+
15207+ match peer_storage_msg_events_node0[0] {
15208+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15209+ assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15210+ nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15211+ }
15212+ _ => panic!("Unexpected event"),
15213+ }
15214+
15215+ match peer_storage_msg_events_node1[0] {
15216+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15217+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15218+ nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15219+ }
15220+ _ => panic!("Unexpected event"),
15221+ }
1520515222
1520615223 nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1520715224 nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15213,9 +15230,24 @@ mod tests {
1521315230 features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1521415231 }, false).unwrap();
1521515232
15233+ let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15234+ assert_eq!(node_1_events.len(), 2);
15235+
1521615236 let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1521715237 assert_eq!(node_0_events.len(), 2);
1521815238
15239+ for msg in node_1_events{
15240+ if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15241+ nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15242+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15243+ } else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15244+ nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15245+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15246+ } else {
15247+ panic!("Unexpected event")
15248+ }
15249+ }
15250+
1521915251 for msg in node_0_events{
1522015252 if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1522115253 nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15228,30 +15260,9 @@ mod tests {
1522815260 }
1522915261 }
1523015262
15231- let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15232-
15233- // Check if we receive a warning message.
15234- let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15235- .iter()
15236- .filter(|event| match event {
15237- MessageSendEvent::HandleError { .. } => true,
15238- _ => false,
15239- })
15240- .collect();
15241-
15242- assert_eq!(peer_storage_warning.len(), 1);
15243-
15244- match peer_storage_warning[0] {
15245- MessageSendEvent::HandleError { node_id, action } => {
15246- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15247- match action {
15248- ErrorAction::SendWarningMessage { msg, .. } =>
15249- assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15250- _ => panic!("Unexpected error action"),
15251- }
15252- }
15253- _ => panic!("Unexpected event"),
15254- }
15263+ // Clear all other messages.
15264+ nodes[1].node.get_and_clear_pending_msg_events();
15265+ nodes[0].node.get_and_clear_pending_msg_events();
1525515266 }
1525615267
1525715268 #[test]
0 commit comments