### Question:
CollQuery extends AbstractCollQuery<T, CollQuery<T>> implements Cloneable { @Override public CollQuery<T> clone() { return new CollQuery<T>(queryMixin.getMetadata().clone(), getQueryEngine()); } CollQuery();  CollQuery(CollQueryTemplates templates);  CollQuery(QueryEngine queryEngine);  CollQuery(QueryMetadata metadata);  CollQuery(QueryMetadata metadata, QueryEngine queryEngine); @Override CollQuery<T> clone(); @Override CollQuery<E> select(Expression<E> expr); @Override CollQuery<Tuple> select(Expression<?>... exprs);  }### Answer:
@Test public void clone_() { CollQuery<?> query = new CollQuery<Void>().from(cat, Collections.<Cat>emptyList()).where(cat.isNotNull()).clone(); assertEquals("cat is not null", query.getMetadata().getWhere().toString()); }