### Question:
ArrayInvalidatingBucket implements InvalidatingBucket { @Override public void insert(DataItem insertee) { if (!insertee.meta().isTombstone()) { final int position = lowerBound(insertee.meta()); innerList.add(position, insertee); } else { final int position = lowerBound(insertee.meta()) - 1; if (!innerList.get(position).meta().isInvalidedBy(insertee.meta())) { throw new IllegalStateException("There is no invalidee"); } innerList.remove(position); } } ArrayInvalidatingBucket(); protected  ArrayInvalidatingBucket(List<DataItem> innerList); @Override void insert(DataItem insertee); @Override DataItem get(int index); @Override void forRange(int fromIndex, int toIndex, Consumer<DataItem> consumer); @Override void clearRange(int fromIndex, int toIndex); @Override int size(); @Override boolean isEmpty(); @Override int lowerBound(Meta meta); @Override InvalidatingBucket subBucket(Meta meta, int window);  }### Answer:
@Test public void testInsert() { }