package com.querydsl.collections; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.junit.Test; public class CollectionAnyTest extends AbstractQueryTest { @Test public void any_null() { Cat a = new Cat("a"); a.setKittens(null); assertEquals(0, CollQueryFactory.from(cat, Arrays.asList(a)) .where(cat.kittens.any().name.startsWith("a")).fetchCount()); } @Test public void any_in_projection() { Cat a = new Cat("a"); Cat aa = new Cat("aa"); Cat ab = new Cat("ab"); Cat ac = new Cat("ac"); a.setKittens(Arrays.asList(aa,ab,ac)); Cat b = new Cat("b"); Cat ba = new Cat("ba"); Cat bb = new Cat("bb"); b.setKittens(Arrays.asList(ba, bb)); QCat cat = QCat.cat; List<Cat> kittens = CollQueryFactory.from(cat, Arrays.asList(a,b)).select(cat.kittens.any()).fetch(); assertEquals(Arrays.asList(aa,ab,ac,ba,bb), kittens); } @Test public void any_in_projection2() { Cat a = new Cat("a"); Cat aa = new Cat("aa"); Cat ab = new Cat("ab"); Cat ac = new Cat("ac"); a.setKittens(Arrays.asList(aa,ab,ac)); Cat b = new Cat("b"); Cat ba = new Cat("ba"); Cat bb = new Cat("bb"); b.setKittens(Arrays.asList(ba, bb)); QCat cat = QCat.cat; List<String> kittens = CollQueryFactory.from(cat, Arrays.asList(a,b)) .select(cat.kittens.any().name).fetch(); assertEquals(Arrays.asList("aa","ab","ac","ba","bb"), kittens); } @Test public void any_in_where_and_projection() { Cat a = new Cat("a"); Cat aa = new Cat("aa"); Cat ab = new Cat("ab"); Cat ac = new Cat("ac"); a.setKittens(Arrays.asList(aa,ab,ac)); Cat b = new Cat("b"); Cat ba = new Cat("ba"); Cat bb = new Cat("bb"); b.setKittens(Arrays.asList(ba, bb)); QCat cat = QCat.cat; List<Cat> kittens = CollQueryFactory.from(cat, Arrays.asList(a,b)) .where(cat.kittens.any().name.startsWith("a")) .select(cat.kittens.any()).fetch(); assertEquals(Arrays.asList(aa,ab,ac), kittens); } @Test public void any_in_where_and_projection2() { Cat a = new Cat("a"); Cat aa = new Cat("aa"); Cat ab = new Cat("ab"); Cat ac = new Cat("ac"); a.setKittens(Arrays.asList(aa,ab,ac)); Cat b = new Cat("b"); Cat ba = new Cat("ba"); Cat bb = new Cat("bb"); b.setKittens(Arrays.asList(ba, bb)); QCat cat = QCat.cat; List<String> kittens = CollQueryFactory.from(cat, Arrays.asList(a,b)) .where(cat.kittens.any().name.startsWith("a")) .select(cat.kittens.any().name).fetch(); assertEquals(Arrays.asList("aa","ab","ac"), kittens); } }