@@ -15201,9 +15201,26 @@ mod tests {
1520115201
1520215202 create_announced_chan_between_nodes(&nodes, 0, 1);
1520315203
15204- // Since we do not send peer storage, we manually simulate receiving a dummy
15205- // `PeerStorage` from the channel partner.
15206- nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15204+ let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15205+ let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15206+ assert_ne!(peer_storage_msg_events_node0.len(), 0);
15207+ assert_ne!(peer_storage_msg_events_node1.len(), 0);
15208+
15209+ match peer_storage_msg_events_node0[0] {
15210+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15211+ assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15212+ nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15213+ }
15214+ _ => panic!("Unexpected event"),
15215+ }
15216+
15217+ match peer_storage_msg_events_node1[0] {
15218+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15219+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15220+ nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15221+ }
15222+ _ => panic!("Unexpected event"),
15223+ }
1520715224
1520815225 nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1520915226 nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15215,9 +15232,24 @@ mod tests {
1521515232 features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1521615233 }, false).unwrap();
1521715234
15235+ let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15236+ assert_eq!(node_1_events.len(), 2);
15237+
1521815238 let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1521915239 assert_eq!(node_0_events.len(), 2);
1522015240
15241+ for msg in node_1_events{
15242+ if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15243+ nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15244+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15245+ } else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15246+ nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15247+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15248+ } else {
15249+ panic!("Unexpected event")
15250+ }
15251+ }
15252+
1522115253 for msg in node_0_events{
1522215254 if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1522315255 nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15230,30 +15262,9 @@ mod tests {
1523015262 }
1523115263 }
1523215264
15233- let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15234-
15235- // Check if we receive a warning message.
15236- let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15237- .iter()
15238- .filter(|event| match event {
15239- MessageSendEvent::HandleError { .. } => true,
15240- _ => false,
15241- })
15242- .collect();
15243-
15244- assert_eq!(peer_storage_warning.len(), 1);
15245-
15246- match peer_storage_warning[0] {
15247- MessageSendEvent::HandleError { node_id, action } => {
15248- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15249- match action {
15250- ErrorAction::SendWarningMessage { msg, .. } =>
15251- assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15252- _ => panic!("Unexpected error action"),
15253- }
15254- }
15255- _ => panic!("Unexpected event"),
15256- }
15265+ // Clear all other messages.
15266+ nodes[1].node.get_and_clear_pending_msg_events();
15267+ nodes[0].node.get_and_clear_pending_msg_events();
1525715268 }
1525815269
1525915270 #[test]
0 commit comments