### Question:
SingleConsumerQueue extends AbstractCollection<E> implements Iterable<E>, Queue<E>, BasicSingleConsumerQueue<E> { @Override public boolean offer(E e) { return enq(e); }  @Override abstract boolean enq(E element); @Override abstract E poll(); @Override abstract E peek(); @Override abstract QueueIterator<E> iterator(); @Override abstract int size(); abstract List<E> snapshot(); @Override abstract int capacity(); @Override boolean hasNext(); @Override abstract boolean isEmpty(); @Override boolean add(E e); @Override final boolean removeAll(Collection<?> c); @Override final boolean retainAll(Collection<?> c); @Override final void clear(); @Override boolean offer(E e); @Override E remove(); @Override E element(); @Override String toString();  }### Answer:
@Test public void testOffer() { queue.offer("one"); queue.offer("two"); queue.offer("three"); assertThat(queue.isEmpty(), is(false)); assertThat(queue.size(), is(3)); assertThat(list(queue), is(equalTo(list("one", "two", "three")))); }