package squill.tests;
import static java.util.Arrays.asList;
import static junit.framework.Assert.assertEquals;
import static squill.functions.Operations.desc;
import static squill.functions.Operations.gt;
import static squill.functions.Operations.notNull;
import static squill.tuple.Tuple2._;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import squill.Squill;
import squill.db.Database;
import squill.tuple.Tuple2;
import squill.model.ComplaintData.ComplaintTable;
public class OrmTest {
private Database database;
private Squill squill;
@Test
public void ormJoins() {
ComplaintTable complaint = new ComplaintTable();
List<Tuple2<String, Integer>> resultList =
squill
.from(complaint, complaint.customer())
.where(
gt(complaint.customer().isActive, 0),
notNull(complaint.percentSolved),
notNull(complaint.refoundSum))
.orderBy(desc(complaint.customer().id))
.selectList(
complaint.customer().lastName,
complaint.percentSolved);
assertEquals("Result list size", 6, resultList.size());
assertEquals("Result",
asList(_("Elf", 55), _("Claws", 85), _("Devil", 10), _("Devil", 75), _("Fairy", 15), _("Fairy", 100)),
resultList);
}
@Before
public void setUp() throws Exception {
database = TestUtil.getDefaultHsqlDatabase();
squill = new Squill(database);
}
@After
public void tearDown() {
TestUtil.shutDownHsql();
}
}