Skip to content

Commit b5b1d48

Browse files
fixup: multiple fixes to address comments. List below:
- reuse channelmanager from functional_test_utils instead of re-declaring it in common/mod - have consistent grouping on imports - re-introduce create_service_and_client_nodes for DRY purposes - have struct on return value on common mod fn for better readability - get rid of invoice_generation_flow test extension. will come in a new PR after this is merged
1 parent cf3393a commit b5b1d48

File tree

4 files changed

+160
-333
lines changed

4 files changed

+160
-333
lines changed

lightning-liquidity/tests/common/mod.rs

Lines changed: 53 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,79 @@
11
#![cfg(test)]
22

3-
use lightning_liquidity::LiquidityManager;
3+
use bitcoin::Network;
4+
use lightning::ln::channelmanager::ChainParameters;
5+
use lightning_liquidity::{LiquidityClientConfig, LiquidityManager, LiquidityServiceConfig};
46

5-
use lightning::chain::Filter;
6-
use lightning::ln::channelmanager;
7-
use lightning::util::test_utils;
7+
use lightning::chain::{BestBlock, Filter};
8+
use lightning::ln::functional_test_utils::{Node, TestChannelManager};
9+
use lightning::util::test_utils::TestKeysInterface;
10+
11+
use core::ops::Deref;
812

913
use std::sync::Arc;
1014

11-
pub(crate) type TestCM<'a, 'b> = channelmanager::ChannelManager<
12-
&'a test_utils::TestChainMonitor<'b>,
13-
&'b test_utils::TestBroadcaster,
14-
&'a test_utils::TestKeysInterface,
15-
&'a test_utils::TestKeysInterface,
16-
&'a test_utils::TestKeysInterface,
17-
&'b test_utils::TestFeeEstimator,
18-
&'a test_utils::TestRouter<'b>,
19-
&'a test_utils::TestMessageRouter<'b>,
20-
&'b test_utils::TestLogger,
21-
>;
15+
pub(crate) struct LSPSNodes<'a, 'b, 'c> {
16+
pub service_node: LiquidityNode<'a, 'b, 'c>,
17+
pub client_node: LiquidityNode<'a, 'b, 'c>,
18+
}
19+
20+
pub(crate) fn create_service_and_client_nodes_with_optional_payer_node<'a, 'b, 'c>(
21+
nodes: Vec<Node<'a, 'b, 'c>>, service_config: LiquidityServiceConfig,
22+
client_config: LiquidityClientConfig,
23+
) -> LSPSNodes<'a, 'b, 'c> {
24+
let chain_params = ChainParameters {
25+
network: Network::Testnet,
26+
best_block: BestBlock::from_network(Network::Testnet),
27+
};
28+
let service_lm = LiquidityManager::new(
29+
nodes[0].keys_manager,
30+
nodes[0].node,
31+
None::<Arc<dyn Filter + Send + Sync>>,
32+
Some(chain_params.clone()),
33+
Some(service_config),
34+
None,
35+
);
36+
37+
let client_lm = LiquidityManager::new(
38+
nodes[1].keys_manager,
39+
nodes[1].node,
40+
None::<Arc<dyn Filter + Send + Sync>>,
41+
Some(chain_params),
42+
None,
43+
Some(client_config),
44+
);
45+
46+
let mut iter = nodes.into_iter();
47+
let service_node = LiquidityNode::new(iter.next().unwrap(), service_lm);
48+
let client_node = LiquidityNode::new(iter.next().unwrap(), client_lm);
49+
50+
LSPSNodes { service_node, client_node }
51+
}
2252

2353
pub(crate) struct LiquidityNode<'a, 'b, 'c> {
24-
pub inner: lightning::ln::functional_test_utils::Node<'a, 'b, 'c>,
54+
pub inner: Node<'a, 'b, 'c>,
2555
pub liquidity_manager: LiquidityManager<
26-
&'c test_utils::TestKeysInterface,
27-
&'a TestCM<'b, 'c>,
56+
&'c TestKeysInterface,
57+
&'a TestChannelManager<'b, 'c>,
2858
Arc<dyn Filter + Send + Sync>,
2959
>,
3060
}
3161

3262
impl<'a, 'b, 'c> LiquidityNode<'a, 'b, 'c> {
3363
pub fn new(
34-
node: lightning::ln::functional_test_utils::Node<'a, 'b, 'c>,
64+
node: Node<'a, 'b, 'c>,
3565
liquidity_manager: LiquidityManager<
36-
&'c test_utils::TestKeysInterface,
37-
&'a TestCM<'b, 'c>,
66+
&'c TestKeysInterface,
67+
&'a TestChannelManager<'b, 'c>,
3868
Arc<dyn Filter + Send + Sync>,
3969
>,
4070
) -> Self {
4171
Self { inner: node, liquidity_manager }
4272
}
4373
}
4474

45-
impl<'a, 'b, 'c> core::ops::Deref for LiquidityNode<'a, 'b, 'c> {
46-
type Target = lightning::ln::functional_test_utils::Node<'a, 'b, 'c>;
75+
impl<'a, 'b, 'c> Deref for LiquidityNode<'a, 'b, 'c> {
76+
type Target = Node<'a, 'b, 'c>;
4777
fn deref(&self) -> &Self::Target {
4878
&self.inner
4979
}

lightning-liquidity/tests/lsps0_integration_tests.rs

Lines changed: 12 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,8 @@
22

33
mod common;
44

5-
use std::sync::Arc;
6-
7-
use bitcoin::Network;
85
use common::get_lsps_message;
9-
use lightning::chain::Filter;
106

11-
use lightning::chain::BestBlock;
12-
use lightning::ln::channelmanager::ChainParameters;
13-
use lightning::ln::functional_test_utils::{
14-
create_chanmon_cfgs, create_network, create_node_cfgs, create_node_chanmgrs,
15-
};
167
use lightning_liquidity::events::LiquidityEvent;
178
use lightning_liquidity::lsps0::event::LSPS0ClientEvent;
189
#[cfg(lsps1_service)]
@@ -21,11 +12,14 @@ use lightning_liquidity::lsps1::client::LSPS1ClientConfig;
2112
use lightning_liquidity::lsps1::service::LSPS1ServiceConfig;
2213
use lightning_liquidity::lsps2::client::LSPS2ClientConfig;
2314
use lightning_liquidity::lsps2::service::LSPS2ServiceConfig;
24-
use lightning_liquidity::{LiquidityClientConfig, LiquidityManager, LiquidityServiceConfig};
15+
use lightning_liquidity::{LiquidityClientConfig, LiquidityServiceConfig};
2516

17+
use lightning::ln::functional_test_utils::{
18+
create_chanmon_cfgs, create_network, create_node_cfgs, create_node_chanmgrs,
19+
};
2620
use lightning::ln::peer_handler::CustomMessageHandler;
2721

28-
use crate::common::LiquidityNode;
22+
use crate::common::{create_service_and_client_nodes_with_optional_payer_node, LSPSNodes};
2923

3024
#[test]
3125
fn list_protocols_integration_test() {
@@ -56,35 +50,16 @@ fn list_protocols_integration_test() {
5650
lsps2_client_config: Some(lsps2_client_config),
5751
};
5852

59-
let chain_params = ChainParameters {
60-
network: Network::Testnet,
61-
best_block: BestBlock::from_network(Network::Testnet),
62-
};
63-
64-
let service_lm = LiquidityManager::new(
65-
nodes[0].keys_manager,
66-
nodes[0].node,
67-
None::<Arc<dyn Filter + Send + Sync>>,
68-
Some(chain_params.clone()),
69-
Some(service_config),
70-
None,
71-
);
72-
73-
let client_lm = LiquidityManager::new(
74-
nodes[1].keys_manager,
75-
nodes[1].node,
76-
None::<Arc<dyn Filter + Send + Sync>>,
77-
Some(chain_params),
78-
None,
79-
Some(client_config),
80-
);
81-
8253
let service_node_id = nodes[0].node.get_our_node_id();
8354
let client_node_id = nodes[1].node.get_our_node_id();
8455

85-
let mut iter = nodes.into_iter();
86-
let service_node = LiquidityNode::new(iter.next().unwrap(), service_lm);
87-
let client_node = LiquidityNode::new(iter.next().unwrap(), client_lm);
56+
let LSPSNodes { service_node, client_node } =
57+
create_service_and_client_nodes_with_optional_payer_node(
58+
nodes,
59+
service_config,
60+
client_config,
61+
);
62+
8863
let client_handler = client_node.liquidity_manager.lsps0_client_handler();
8964

9065
client_handler.list_protocols(&service_node_id);

0 commit comments

Comments
 (0)