package com.querydsl.collections; import static org.junit.Assert.assertEquals; import java.util.Arrays; import org.junit.Before; import org.junit.Test; public class AggregationTest extends AbstractQueryTest { private static final QCat cat = QCat.cat; private CollQuery<?> query; @Override @Before public void setUp() { Cat cat1 = new Cat(); cat1.setWeight(2); Cat cat2 = new Cat(); cat2.setWeight(3); Cat cat3 = new Cat(); cat3.setWeight(4); Cat cat4 = new Cat(); cat4.setWeight(5); query = CollQueryFactory.from(cat, Arrays.asList(cat1, cat2, cat3, cat4)); } @Test public void avg() { assertEquals(3.5, query.select(cat.weight.avg()).fetchOne(), 0.0); } @Test public void count() { assertEquals(Long.valueOf(4L), query.select(cat.count()).fetchOne()); } @Test public void countDistinct() { assertEquals(Long.valueOf(4L), query.select(cat.countDistinct()).fetchOne()); } @Test public void max() { assertEquals(Integer.valueOf(5), query.select(cat.weight.max()).fetchOne()); } @Test public void min() { assertEquals(Integer.valueOf(2), query.select(cat.weight.min()).fetchOne()); } @SuppressWarnings("unchecked") @Test(expected = UnsupportedOperationException.class) public void min_and_max() { query.select(cat.weight.min(), cat.weight.max()).fetchOne(); } @Test public void sum() { assertEquals(Integer.valueOf(14), query.select(cat.weight.sum()).fetchOne()); } }