Skip to content

Commit 580b38b

Browse files
committed
Test the repository 'get tx up to' method instead of the trait implem
Since multiple traits can define it
1 parent b646831 commit 580b38b

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

mithril-signer/src/database/provider/cardano_transaction.rs

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,15 @@ impl CardanoTransactionRepository {
278278
}
279279

280280
/// Create new [CardanoTransactionRecord]s in the database.
281-
pub async fn create_transactions(
281+
pub async fn create_transactions<T: Into<CardanoTransactionRecord>>(
282282
&self,
283-
transactions: Vec<CardanoTransactionRecord>,
283+
transactions: Vec<T>,
284284
) -> StdResult<Vec<CardanoTransactionRecord>> {
285+
let records: Vec<CardanoTransactionRecord> =
286+
transactions.into_iter().map(|tx| tx.into()).collect();
287+
285288
let provider = InsertCardanoTransactionProvider::new(&self.connection);
286-
let filters = provider.get_insert_many_condition(transactions)?;
289+
let filters = provider.get_insert_many_condition(records)?;
287290
let cursor = provider.find(filters)?;
288291

289292
Ok(cursor.collect())
@@ -328,9 +331,7 @@ impl TransactionStore for CardanoTransactionRepository {
328331
}
329332

330333
async fn store_transactions(&self, transactions: &[CardanoTransaction]) -> StdResult<()> {
331-
let records: Vec<CardanoTransactionRecord> =
332-
transactions.iter().map(|tx| tx.to_owned().into()).collect();
333-
self.create_transactions(records)
334+
self.create_transactions(transactions.to_vec())
334335
.await
335336
.with_context(|| "CardanoTransactionRepository can not store transactions")?;
336337

@@ -574,8 +575,8 @@ mod tests {
574575
let connection = get_connection().await;
575576
let repository = CardanoTransactionRepository::new(connection.clone());
576577

577-
let cardano_transactions: Vec<CardanoTransaction> = (20..=40)
578-
.map(|i| CardanoTransaction {
578+
let cardano_transactions: Vec<CardanoTransactionRecord> = (20..=40)
579+
.map(|i| CardanoTransactionRecord {
579580
transaction_hash: format!("tx-hash-{i}"),
580581
block_number: i % 10,
581582
slot_number: i * 100,
@@ -584,24 +585,18 @@ mod tests {
584585
})
585586
.collect();
586587
repository
587-
.store_transactions(&cardano_transactions)
588+
.create_transactions(cardano_transactions.clone())
588589
.await
589590
.unwrap();
590591

591-
let transaction_result = repository.get_up_to(34).await.unwrap();
592-
592+
let transaction_result = repository.get_transactions_up_to(34).await.unwrap();
593593
assert_eq!(cardano_transactions[0..=14].to_vec(), transaction_result);
594594

595-
let transaction_result = repository.get_up_to(300).await.unwrap();
596-
597-
assert_eq!(
598-
cardano_transactions.into_iter().collect::<Vec<_>>(),
599-
transaction_result
600-
);
601-
602-
let transaction_result = repository.get_up_to(19).await.unwrap();
595+
let transaction_result = repository.get_transactions_up_to(300).await.unwrap();
596+
assert_eq!(cardano_transactions.clone(), transaction_result);
603597

604-
assert_eq!(Vec::<CardanoTransaction>::new(), transaction_result);
598+
let transaction_result = repository.get_transactions_up_to(19).await.unwrap();
599+
assert_eq!(Vec::<CardanoTransactionRecord>::new(), transaction_result);
605600
}
606601

607602
#[tokio::test]

0 commit comments

Comments
 (0)