@Test public void shouldNotifyListenerWhenLocalTransactionAdded() { transactions.addTransactionListener(listener); transactions.addLocalTransaction(transaction1); verify(listener).onTransactionAdded(transaction1); }
@Test public void shouldNotifyListenerWhenRemoteTransactionAdded() { transactions.addTransactionListener(listener); transactions.addRemoteTransaction(transaction1); verify(listener).onTransactionAdded(transaction1); }
@Test public void shouldNotReplaceTransactionWithSameSenderAndNonceWhenGasPriceIsLower() { final Transaction transaction1 = transactionWithNonceSenderAndGasPrice(1, KEYS1, 2); final Transaction transaction1b = transactionWithNonceSenderAndGasPrice(1, KEYS1, 1); assertThat(transactions.addRemoteTransaction(transaction1)).isTrue(); transactions.addTransactionListener(listener); assertThat(transactions.addRemoteTransaction(transaction1b)).isFalse(); assertTransactionNotPending(transaction1b); assertTransactionPending(transaction1); assertThat(transactions.size()).isEqualTo(1); verifyZeroInteractions(listener); }
@Test public void shouldReaddTransactionsFromThePreviousCanonicalHeadWhenAReorgOccurs() { givenTransactionIsValid(transaction1); givenTransactionIsValid(transaction2); transactions.addRemoteTransaction(transaction1); transactions.addRemoteTransaction(transaction2); final BlockHeader commonParent = getHeaderForCurrentChainHead(); final Block originalFork1 = appendBlock(UInt256.of(1000), commonParent, transaction1); final Block originalFork2 = appendBlock(UInt256.ONE, originalFork1.getHeader(), transaction2); assertTransactionNotPending(transaction1); assertTransactionNotPending(transaction2); final Block reorgFork1 = appendBlock(UInt256.ONE, commonParent); verifyChainHeadIs(originalFork2); transactions.addTransactionListener(listener); final Block reorgFork2 = appendBlock(UInt256.of(2000), reorgFork1.getHeader()); verifyChainHeadIs(reorgFork2); assertTransactionPending(transaction1); assertTransactionPending(transaction2); verify(listener).onTransactionAdded(transaction1); verify(listener).onTransactionAdded(transaction2); verifyNoMoreInteractions(listener); }