### Question:
ByteBufTableImpl implements Table<ByteBuf, ByteBuf> { @Override public OpFactory<ByteBuf, ByteBuf> opFactory() { return underlying.opFactory(); } ByteBufTableImpl(PTable<ByteBuf, ByteBuf> underlying); @Override CompletableFuture<RangeResult<ByteBuf, ByteBuf>> get(ByteBuf key, RangeOption<ByteBuf> option); @Override CompletableFuture<PutResult<ByteBuf, ByteBuf>> put(ByteBuf key, ByteBuf value, PutOption<ByteBuf> option); @Override CompletableFuture<DeleteResult<ByteBuf, ByteBuf>> delete(ByteBuf key, DeleteOption<ByteBuf> option); @Override CompletableFuture<IncrementResult<ByteBuf, ByteBuf>> increment(ByteBuf key,
                                                                          long amount,
                                                                          IncrementOption<ByteBuf> option); @Override Txn<ByteBuf, ByteBuf> txn(ByteBuf key); @Override OpFactory<ByteBuf, ByteBuf> opFactory(); @Override void close();  }### Answer:
@Test public void testOpFactory() { table.opFactory(); verify(pTable, times(1)).opFactory(); }