package org.raidenjpa.query.executor; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.junit.Test; import org.raidenjpa.entities.A; import org.raidenjpa.entities.B; public class QueryResultTest { @Test public void testSimple() { List<A> as = new ArrayList<A>(); as.add(new A("a1")); as.add(new A("a2")); QueryResult result = new QueryResult(); result.addFrom("a", as); Iterator<QueryResultRow> it = result.iterator(); A a1 = (A) it.next().get("a"); A a2 = (A) it.next().get("a"); assertEquals("a1", a1.getStringValue()); assertEquals("a2", a2.getStringValue()); } @Test public void testAddFromTwice() { QueryResult result = new QueryResult(); List<A> as = new ArrayList<A>(); as.add(new A("a1")); as.add(new A("a2")); as.add(new A("a3")); result.addFrom("a", as); List<B> bs = new ArrayList<B>(); bs.add(new B("b1")); bs.add(new B("b2")); result.addFrom("b", bs); assertEquals(6, result.size()); Iterator<QueryResultRow> it = result.iterator(); QueryResultRow row = null; row = it.next(); assertEquals("a1", ((A) row.get("a")).getStringValue()); assertEquals("b1", ((B) row.get("b")).getValue()); row = it.next(); assertEquals("a1", ((A) row.get("a")).getStringValue()); assertEquals("b2", ((B) row.get("b")).getValue()); row = it.next(); assertEquals("a2", ((A) row.get("a")).getStringValue()); assertEquals("b1", ((B) row.get("b")).getValue()); row = it.next(); assertEquals("a2", ((A) row.get("a")).getStringValue()); assertEquals("b2", ((B) row.get("b")).getValue()); } }