package com.querydsl.collections; import static com.querydsl.collections.CollQueryFactory.from; import static com.querydsl.core.alias.Alias.$; import static com.querydsl.core.alias.Alias.alias; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Collection; import org.junit.Test; import com.google.common.base.Optional; import com.google.common.collect.Lists; public class GuavaOptionalTest { public static class Cat { private Optional<String> pedigree = Optional.absent(); public Cat() { } public Cat(Optional<String> pedigree) { this.pedigree = pedigree; } public Optional<String> getPedigree() { return pedigree; } } @Test public void test() { Collection<Cat> cats = Lists.newArrayList(); cats.add(new Cat(Optional.<String>absent())); cats.add(new Cat(Optional.of("persian"))); Cat c = alias(Cat.class); for (Cat cat : from(c, cats) .where($(c.getPedigree()).eq(Optional.of("persian"))) .select($(c)).fetch()) { assertTrue(cat.getPedigree().isPresent()); assertEquals("persian", cat.getPedigree().get()); } } }