Skip to content

Payment Driver ‐ Test Scenarios

scx1332 edited this page Jul 28, 2023 · 18 revisions

TODO: ADD ALLOWANCE TESTS

  • All tests are run with multi transactions on or off (with exceptions). Check status at the end.
  • Most tests execute with implied preconditions -- enough tokens and gas to cover all transactions, and low gas price.
  • Status is intentionally left as TBD until the API is designed.
Test Number Preconditions Description Steps Expected Result Associated Payment Driver Status
1 - Single token transfer transfer tokens from account A to account B A and B balance changes accordingly TBD
2 - Multiple token transfers from A to B do n times: transfer tokens from A to B A and B` balance changes accordingly TBD
3 - Token transfer to different accounts w/o duplicates do n times: transfer tokens from A to Bn A and B{1..n} balances change accordingly TBD
4 - Multiple token transfers to multiple accounts w/ duplicates do n times: transfer tokens from A to Br(n) where r(n) is not bijective A and all Br(n) balances change accordingly TBD
5 insufficient gas for transaction Single transaction when no gas on account transfer tokens from A to B Driver detects insufficient gas for the transaction TBD
6 insufficient token for transaction Single transaction when no token on account transfer tokens from A to B Driver detects insufficient token for transaction TBD
7 missing private key in config Single transaction that you can not sign transfer tokens from A to B Driver detects that the key is missing, A and B balances do not change TBD
8 misconfigured chain id Single transaction transfer tokens from A to B Driver detects invalid / missing chain id, A and B balances do not change TBD
9 - Transaction to null address transfer tokens from A to null address Driver detects invalid transaction, A and B balances do not change TBD
10 Blockchain in high gas state. Single transaction with gas limit set low, after deadline transfer tokens from A to B Driver detects stuck transaction, A and B balances do not change TBD
11 high gas Stuck transaction retry Transfer tokens from A to B -> transaction is stuck due to low gas -> transaction is cancelled -> transaction is retried The second transaction succeeds, A and B balance changes accordingly TBD
12 gas price is manipulated as part of the test Stuck transaction unstucks during retry Transfer tokens from A to B -> transaction is stuck due to low gas -> transaction is cancelled (-> blockchain accepts the old transaction) -> new transaction is sent with higher gas Driver detects the second transaction fails because the previous one passed and reckognizes that the situation is OK, A and B balance changes accordingly TBD
13 gas price is manipulated as part of the test Stuck transaction's retry is stuck as well, old transaction passes during second retry Transfer tokens from A to B -> transaction is stuck due to low gas -> transaction is cancelled (-> gas price increased) -> new transaction is sent with higher gas (-> gas falls and old transaction is accepted) -> new transaction is sent with higher gas Driver detects the third transaction fails because the previous one passed and reckognizes that the situation is OK, A and B balance changes accordingly TBD
14 different setup: two instances of the payment driver executing conflicting transactions from one account Single transaction w/ wrong nonce Both instances: transfer from A to B One instance succeeds, the other detects that the transaction failed due to wrong nonce. A and B balance changes accordingly TBD
15 - Load tests (for example 100000 transactions to be processed) the same as test (4) but with large n A and B{1..n} balances change accordingly TBD
TBD TBD TBD TBD TBD TBD

This tests can be preformed in different configurations (for example payments generated during the run)

f

Clone this wiki locally