### Question:
TransactionInvokerImpl implements TransactionInvoker,TransactionChainListener, Runnable, AutoCloseable { @Override public void invoke(final TransactionCommand command) { if (!inputQueue.offer(command)) { LOG.error("inputQueue is full (size: {}) - could not offer {}", inputQueue.size(), command); } } TransactionInvokerImpl(final DataBroker db); @VisibleForTesting  TransactionInvokerImpl(final DataBroker db, final ExecutorService executor); @VisibleForTesting  TransactionInvokerImpl(final DataBroker db,
            final List<Entry<ReadWriteTransaction, TransactionCommand>> pendingTransactions,
            final List<ReadWriteTransaction> failedTransactions); @VisibleForTesting  TransactionInvokerImpl(final DataBroker db,
            final List<Entry<ReadWriteTransaction, TransactionCommand>> pendingTransactions); @Override void invoke(final TransactionCommand command); @Override void onTransactionChainFailed(final TransactionChain chainArg,
            final Transaction transaction, final Throwable cause); @Override void onTransactionChainSuccessful(final TransactionChain chainArg); @Override void run(); @Override void close();  }### Answer:
@Test public void testInvoke() { final TransactionInvokerImpl invoker = new TransactionInvokerImpl(db, new ArrayList<>()); final TransactionCommand command = mock(TransactionCommand.class); invoker.invoke(command); Queue<TransactionCommand> inputQueue = getInternalState(invoker, "inputQueue"); assertEquals(1, inputQueue.size()); assertTrue(inputQueue.contains(command)); }