Skip to content

Commit 69f1ed8

Browse files
committed
Use FnOnce to init mocks in tx importer test
This reduce the 'move' boilerplates needed to work with the mocks.
1 parent 86c172c commit 69f1ed8

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

mithril-signer/src/cardano_transactions_importer.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,14 @@ mod tests {
136136
}
137137
}
138138

139-
fn build_importer(
140-
parser_mock_config: &dyn Fn(&mut MockTransactionParserImpl),
141-
store_mock_config: &dyn Fn(&mut MockTransactionStore),
142-
) -> CardanoTransactionsImporter {
139+
fn build_importer<TParser, TStore>(
140+
parser_mock_config: TParser,
141+
store_mock_config: TStore,
142+
) -> CardanoTransactionsImporter
143+
where
144+
TParser: FnOnce(&mut MockTransactionParserImpl),
145+
TStore: FnOnce(&mut MockTransactionStore),
146+
{
143147
let db_path = Path::new("");
144148
let mut parser = MockTransactionParserImpl::new();
145149
parser_mock_config(&mut parser);
@@ -168,14 +172,14 @@ mod tests {
168172
let up_to_beacon = 12;
169173

170174
let importer = build_importer(
171-
&|parser_mock| {
175+
|parser_mock| {
172176
let parsed_transactions = transactions.clone();
173177
parser_mock
174178
.expect_parse()
175179
.withf(move |_, from, until| from.is_none() && until == &up_to_beacon)
176180
.return_once(move |_, _, _| Ok(parsed_transactions));
177181
},
178-
&|store_mock| {
182+
|store_mock| {
179183
let expected_stored_transactions = transactions.clone();
180184
store_mock
181185
.expect_get_highest_beacon()
@@ -199,10 +203,10 @@ mod tests {
199203
let up_to_beacon = 12;
200204

201205
let importer = build_importer(
202-
&|parser_mock| {
206+
|parser_mock| {
203207
parser_mock.expect_parse().never();
204208
},
205-
&|store_mock| {
209+
|store_mock| {
206210
store_mock
207211
.expect_get_highest_beacon()
208212
.returning(|| Ok(Some(12)));
@@ -227,14 +231,14 @@ mod tests {
227231
let up_to_beacon = 14;
228232

229233
let importer = build_importer(
230-
&|parser_mock| {
234+
|parser_mock| {
231235
let parsed_transactions = transactions[2..=3].to_vec();
232236
parser_mock
233237
.expect_parse()
234238
.withf(move |_, from, until| from == &Some(13) && until == &up_to_beacon)
235239
.return_once(move |_, _, _| Ok(parsed_transactions));
236240
},
237-
&|store_mock| {
241+
|store_mock| {
238242
store_mock
239243
.expect_get_highest_beacon()
240244
.returning(|| Ok(Some(12)));

0 commit comments

Comments
 (0)