From 91f3d2316541f4c166028c3adfa996d81ec775fb Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 13 Nov 2014 00:52:08 +0100 Subject: [PATCH] Tests for completing transactions with non-standard fees. --- .../java/org/bitcoinj/core/WalletTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/core/src/test/java/org/bitcoinj/core/WalletTest.java b/core/src/test/java/org/bitcoinj/core/WalletTest.java index 2c96a7f4..3391dc76 100644 --- a/core/src/test/java/org/bitcoinj/core/WalletTest.java +++ b/core/src/test/java/org/bitcoinj/core/WalletTest.java @@ -2280,6 +2280,42 @@ public class WalletTest extends TestWithWallet { assertEquals(Transaction.REFERENCE_DEFAULT_MIN_TX_FEE, request.tx.getFee()); } + @Test + public void lowerThanDefaultFee() throws InsufficientMoneyException { + Coin fee = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE.divide(10); + receiveATransactionAmount(wallet, myAddress, Coin.COIN); + SendRequest req = SendRequest.to(myAddress, Coin.CENT); + req.feePerKb = fee; + wallet.completeTx(req); + assertEquals(fee, req.tx.getFee()); + wallet.commitTx(req.tx); + SendRequest emptyReq = SendRequest.emptyWallet(myAddress); + emptyReq.feePerKb = fee; + emptyReq.emptyWallet = true; + emptyReq.coinSelector = AllowUnconfirmedCoinSelector.get(); + wallet.completeTx(emptyReq); + assertEquals(fee, emptyReq.tx.getFee()); + wallet.commitTx(emptyReq.tx); + } + + @Test + public void higherThanDefaultFee() throws InsufficientMoneyException { + Coin fee = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE.multiply(10); + receiveATransactionAmount(wallet, myAddress, Coin.COIN); + SendRequest req = SendRequest.to(myAddress, Coin.CENT); + req.feePerKb = fee; + wallet.completeTx(req); + assertEquals(fee, req.tx.getFee()); + wallet.commitTx(req.tx); + SendRequest emptyReq = SendRequest.emptyWallet(myAddress); + emptyReq.feePerKb = fee; + emptyReq.emptyWallet = true; + emptyReq.coinSelector = AllowUnconfirmedCoinSelector.get(); + wallet.completeTx(emptyReq); + assertEquals(fee, emptyReq.tx.getFee()); + wallet.commitTx(emptyReq.tx); + } + @Test public void feePerKbCategoryJumpTest() throws Exception { // Simple test of boundary condition on fee per kb in category fee solver