### Question:
OnlineIndexProxy implements IndexProxy { @Override public void drop() { indexCountsRemover.remove(); accessor.drop(); } OnlineIndexProxy( CapableIndexDescriptor capableIndexDescriptor, IndexAccessor accessor, IndexStoreView storeView, boolean forcedIdempotentMode ); @Override void start(); @Override IndexUpdater newUpdater( final IndexUpdateMode mode ); @Override void drop(); @Override CapableIndexDescriptor getDescriptor(); @Override InternalIndexState getState(); @Override void force( IOLimiter ioLimiter ); @Override void refresh(); @Override void close(); @Override IndexReader newReader(); @Override boolean awaitStoreScanCompleted( long time, TimeUnit unit ); @Override void activate(); @Override void validate(); @Override void validateBeforeCommit( Value[] tuple ); @Override IndexPopulationFailure getPopulationFailure(); @Override PopulationProgress getIndexPopulationProgress(); @Override ResourceIterator<File> snapshotFiles(); @Override Map<String,Value> indexConfig(); @Override String toString(); @Override void verifyDeferredConstraints( NodePropertyAccessor nodePropertyAccessor );  }### Answer:
@Test public void shouldRemoveIndexCountsWhenTheIndexItselfIsDropped() throws IOException { CapableIndexDescriptor capableIndexDescriptor = descriptor.withId( indexId ).withoutCapabilities(); OnlineIndexProxy index = new OnlineIndexProxy( capableIndexDescriptor, accessor, storeView, false ); index.drop(); verify( accessor ).drop(); verify( storeView ).replaceIndexCounts( indexId, 0L, 0L, 0L ); verifyNoMoreInteractions( accessor, storeView ); }