### Question:
BesuEventsImpl implements BesuEvents { @Override public void removeLogListener(final long listenerIdentifier) { blockchain.removeObserver(listenerIdentifier); } BesuEventsImpl(
      final Blockchain blockchain,
      final BlockBroadcaster blockBroadcaster,
      final TransactionPool transactionPool,
      final SyncState syncState); @Override long addBlockPropagatedListener(final BlockPropagatedListener listener); @Override void removeBlockPropagatedListener(final long listenerIdentifier); @Override long addBlockAddedListener(final BlockAddedListener listener); @Override void removeBlockAddedListener(final long listenerIdentifier); @Override long addBlockReorgListener(final BlockReorgListener listener); @Override void removeBlockReorgListener(final long listenerIdentifier); @Override long addTransactionAddedListener(final TransactionAddedListener listener); @Override void removeTransactionAddedListener(final long listenerIdentifier); @Override long addTransactionDroppedListener(
      final TransactionDroppedListener transactionDroppedListener); @Override void removeTransactionDroppedListener(final long listenerIdentifier); @Override long addSyncStatusListener(final SyncStatusListener syncStatusListener); @Override void removeSyncStatusListener(final long listenerIdentifier); @Override long addLogListener(
      final List<Address> addresses,
      final List<List<Bytes32>> topics,
      final LogListener logListener); @Override void removeLogListener(final long listenerIdentifier);  }### Answer:
@Test public void logEventDoesNotFireAfterUnsubscribe() { final List<LogWithMetadata> result = new ArrayList<>(); final long id = blockchain.observeLogs(result::add); assertThat(result).isEmpty(); final var block = gen.block( new BlockDataGenerator.BlockOptions() .setParentHash(blockchain.getGenesisBlock().getHash())); blockchain.appendBlock(block, gen.receipts(block)); assertThat(result).hasSize(4); result.clear(); serviceImpl.removeLogListener(id); final var block2 = gen.block(new BlockDataGenerator.BlockOptions().setParentHash(block.getHash())); blockchain.appendBlock(block2, gen.receipts(block2)); assertThat(result).isEmpty(); }