ledger: additional error-cases testing
This commit is contained in:
parent
12972a01c0
commit
211147db2c
|
@ -502,4 +502,97 @@ mod test {
|
|||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unknown_client_and_transaction() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 2, 2",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::UnknownTx(ClientId(2), TxId(2)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unknown_client() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 2, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::UnknownTx(ClientId(2), TxId(1)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unknown_transaction() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 1, 2",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::UnknownTx(ClientId(1), TxId(2)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn double_dispute() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 1, 1",
|
||||
"dispute, 1, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::AlreadyDisputed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dispute_after_resolution() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 1, 1",
|
||||
"resolve, 1, 1",
|
||||
"dispute, 1, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::AlreadyDisputed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dispute_after_chargeback() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"dispute, 1, 1",
|
||||
"chargeback, 1, 1",
|
||||
"dispute, 1, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::AlreadyDisputed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resolution_no_dispute() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"resolve, 1, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::NotDisputed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn chargeback_no_dispute() {
|
||||
let error = process_transactions(inline_csv!(
|
||||
"type, client, tx, amount",
|
||||
"deposit, 1, 1, 1.0",
|
||||
"chargeback, 1, 1",
|
||||
))
|
||||
.unwrap_err();
|
||||
assert_eq!(error, LedgerError::NotDisputed);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue