private void assertMaximumNonceForSender(final Address sender1, final int i) { assertThat(transactions.getNextNonceForSender(sender1)).isEqualTo(OptionalLong.of(i)); }
@Test public void shouldReturnEmptyOptionalAsMaximumNonceWhenNoTransactionsPresent() { assertThat(transactions.getNextNonceForSender(SENDER1)).isEmpty(); }
@Test public void shouldUsePendingTransactionsWhenToldTo() { when(pendingTransactions.getNextNonceForSender(Address.fromHexString(pendingTransactionString))) .thenReturn(OptionalLong.of(12)); final JsonRpcRequest request = new JsonRpcRequest("1", "eth_getTransactionCount", pendingParams); final JsonRpcSuccessResponse response = (JsonRpcSuccessResponse) ethGetTransactionCount.response(request); assertEquals("0xc", response.getResult()); }
@Test public void shouldUseLatestTransactionsWhenNoPendingTransactions() { final Address address = Address.fromHexString(pendingTransactionString); when(pendingTransactions.getNextNonceForSender(address)).thenReturn(OptionalLong.empty()); when(blockchain.headBlockNumber()).thenReturn(1L); when(blockchain.getTransactionCount(address, 1L)).thenReturn(7L); final JsonRpcRequest request = new JsonRpcRequest("1", "eth_getTransactionCount", pendingParams); final JsonRpcSuccessResponse response = (JsonRpcSuccessResponse) ethGetTransactionCount.response(request); assertEquals("0x7", response.getResult()); } }
@Test public void shouldReturnEmptyOptionalAsMaximumNonceWhenLastTransactionForSenderRemoved() { final Transaction transaction = transactionWithNonceAndSender(1, KEYS1); transactions.addRemoteTransaction(transaction); transactions.removeTransaction(transaction); assertThat(transactions.getNextNonceForSender(SENDER1)).isEmpty(); }