No effective change - touch up test assert

This commit is contained in:
Rob Bygrave
2014-05-18 22:04:37 +12:00
parent c37fa83675
commit b587aa8172
@@ -2,12 +2,15 @@ package com.avaje.tests.query.orderby;
import java.util.List;
import junit.framework.Assert;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.*;
import com.avaje.tests.model.basic.*;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.tests.model.basic.MRole;
import com.avaje.tests.model.basic.MUser;
import com.avaje.tests.model.basic.MUserType;
public class TestOrderByWithDistinct extends BaseTestCase {
@@ -48,20 +51,22 @@ public class TestOrderByWithDistinct extends BaseTestCase {
.orderBy("userType.name, userName");
List<MUser> list = query.findList();
/*
* Produces this query:
select distinct t0.userid c0, t0.user_name c1, t0.user_type_id c2
from muser t0
join mrole_muser u1z_ on u1z_.muser_userid = t0.userid
join mrole u1 on u1.roleid = u1z_.mrole_roleid
left outer join muser_type t1 on t1.id = t0.user_type_id
where t1.name = ? and u1.role_name = ?
order by t1.name, t0.user_name
t1.name is not in select
*/
// select distinct t0.userid c0, t0.user_name c1, t1.id c2, t1.name c3
// from muser t0
// left outer join muser_type t1 on t1.id = t0.user_type_id
// join mrole_muser u1z_ on u1z_.muser_userid = t0.userid
// join mrole u1 on u1.roleid = u1z_.mrole_roleid
// where u1.role_name = ?
// order by t1.name, t0.user_name; --bind(A)
Assert.assertEquals(1, list.size());
Assert.assertEquals(user1, list.get(0));
String generatedSql = query.getGeneratedSql();
Assert.assertTrue(generatedSql.contains("select distinct t0.userid")); // using distinct
Assert.assertTrue(generatedSql.contains("order by t1.name,")); // name in order by
Assert.assertTrue(generatedSql.contains("t1.name c"));// name in select
// repeat with slight variation, not sure this really produces a different execution path
// this problem also manifests when autofetch eliminates properties from the select that aren't used in the objects
@@ -79,6 +84,19 @@ public class TestOrderByWithDistinct extends BaseTestCase {
Assert.assertEquals(1, list.size());
Assert.assertEquals(user1, list.get(0));
// select distinct t0.userid c0, t0.user_name c1, t1.id c2, t1.name c3
// from muser t0
// left outer join muser_type t1 on t1.id = t0.user_type_id
// join mrole_muser u1z_ on u1z_.muser_userid = t0.userid
// join mrole u1 on u1.roleid = u1z_.mrole_roleid
// where u1.role_name = ?
// order by t1.name; --bind(A)
generatedSql = query.getGeneratedSql();
Assert.assertTrue(generatedSql.contains("select distinct t0.userid")); // using distinct
Assert.assertTrue(generatedSql.contains("order by t1.name")); // name in order by
Assert.assertTrue(generatedSql.contains("t1.name c"));// name in select
}
}