#566 - Refactor internals - Initial tidy on OrmQueryDetail and OrmQueryDetailProperties

This commit is contained in:
Robin Bygrave
2016-02-17 10:52:55 +13:00
parent 69bf1758bc
commit 2fcaab44c6
21 changed files with 833 additions and 313 deletions
@@ -1,37 +1,40 @@
package com.avaje.tests.query;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.ebeaninternal.api.SpiQuery;
import com.avaje.ebeaninternal.server.querydefn.OrmQueryDetail;
import com.avaje.tests.model.basic.Order;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class TestQueryParsing extends BaseTestCase {
@Test
public void test() {
String oq = "find order join customer join customer.contacts join details (+query(4),+lazy(5))";
String oq = "find order join customer (id, name) join customer.contacts join details (+query(4),+lazy(5))";
Query<Order> q = Ebean.createQuery(Order.class, oq);
checkQuery(q);
String oq1 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) )";
String oq1 = "find order join customer (id, name) join customer.contacts join details ( +query(4), +lazy(5) )";
SpiQuery<?> q1 = (SpiQuery<?>) Ebean.createQuery(Order.class, oq1);
checkQuery(q1);
String oq2 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) , *)";
String oq2 = "find order join customer (id, name) join customer.contacts join details ( +query(4), +lazy(5) , *)";
SpiQuery<?> q2 = (SpiQuery<?>) Ebean.createQuery(Order.class, oq2);
checkQuery(q2);
String oq3 = "find order join customer join customer.contacts join details (+query(4),+lazy(5),*)";
String oq3 = "find order join customer (id, name) join customer.contacts join details (+query(4),+lazy(5),*)";
SpiQuery<?> q3 = (SpiQuery<?>) Ebean.createQuery(Order.class, oq3);
checkQuery(q3);
String oq4 = "find order join customer join customer.contacts join details (+query(4) +lazy(5) *)";
String oq4 = "find order join customer (id, name) join customer.contacts join details (+query(4) +lazy(5) *)";
SpiQuery<?> q4 = (SpiQuery<?>) Ebean.createQuery(Order.class, oq4);
checkQuery(q4);
@@ -41,23 +44,25 @@ public class TestQueryParsing extends BaseTestCase {
SpiQuery<?> sq = (SpiQuery<?>) q;
OrmQueryDetail detail = sq.getDetail();
assertTrue(detail.getChunk(null, false).allProperties());
Assert.assertNotNull(detail.getChunk("customer", false));
Assert.assertFalse(detail.getChunk("customer", false).isQueryFetch());
Assert.assertFalse(detail.getChunk("customer", false).isLazyFetch());
assertNotNull(detail.getChunk("customer", false));
assertFalse(detail.getChunk("customer", false).isQueryFetch());
assertFalse(detail.getChunk("customer", false).isLazyFetch());
assertFalse(detail.getChunk("customer", false).allProperties());
assertEquals("id, name",detail.getChunk("customer", false).getProperties());
Assert.assertNotNull(detail.getChunk("customer.contacts", false));
Assert.assertFalse(detail.getChunk("customer.contacts", false).isQueryFetch());
Assert.assertFalse(detail.getChunk("customer.contacts", false).isLazyFetch());
assertNotNull(detail.getChunk("customer.contacts", false));
assertFalse(detail.getChunk("customer.contacts", false).isQueryFetch());
assertFalse(detail.getChunk("customer.contacts", false).isLazyFetch());
assertTrue(detail.getChunk("customer.contacts", false).allProperties());
Assert.assertNotNull(detail.getChunk("details", false));
Assert.assertTrue(detail.getChunk("details", false).isQueryFetch());
Assert.assertTrue(detail.getChunk("details", false).isLazyFetch());
Assert.assertEquals(4, detail.getChunk("details", false).getQueryFetchBatch());
Assert.assertEquals(5, detail.getChunk("details", false).getLazyFetchBatch());
Assert.assertTrue(detail.getChunk("details", false).allProperties());
assertNotNull(detail.getChunk("details", false));
assertTrue(detail.getChunk("details", false).isQueryFetch());
assertTrue(detail.getChunk("details", false).isLazyFetch());
assertEquals(4, detail.getChunk("details", false).getQueryFetchBatch());
assertEquals(5, detail.getChunk("details", false).getLazyFetchBatch());
assertTrue(detail.getChunk("details", false).allProperties());
}