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