package com.querydsl.collections; import static org.junit.Assert.assertEquals; import java.util.Arrays; import org.junit.Test; public class CastTest extends AbstractQueryTest { @Test public void parents() { QCat cat = QAnimal.animal.as(QCat.class); assertEquals(QAnimal.animal, cat.getMetadata().getParent()); } @Test public void cast() { assertEquals(Arrays.asList(c1, c2, c3, c4), query().from(QAnimal.animal, cats) .where(QAnimal.animal.as(QCat.class).breed.eq(0)) .select(QAnimal.animal).fetch()); } @Test public void property_dereference() { Cat cat = new Cat(); cat.setEyecolor(Color.TABBY); assertEquals(Color.TABBY, CollQueryFactory.from(QAnimal.animal, cat) .where(QAnimal.animal.instanceOf(Cat.class)) .select(QAnimal.animal.as(QCat.class).eyecolor).fetchFirst()); } }