diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/AbstractQueryTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/AbstractQueryTest.java index 2956a40ba..8bcceef4b 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/AbstractQueryTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/AbstractQueryTest.java @@ -13,7 +13,7 @@ public abstract class AbstractQueryTest implements Constants{ private HQLSerializer visitor = new HQLSerializer(new HQLTemplates()); - protected void toString(String expected, Expr expr) { + protected void assertToString(String expected, Expr expr) { assertEquals(expected, visitor.handle(expr).toString().replace("\n", " ")); // visitor.clear(); visitor = new HQLSerializer(new HQLTemplates()); diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/AggregationTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/AggregationTest.java index c6081776c..09040c8ff 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/AggregationTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/AggregationTest.java @@ -13,13 +13,13 @@ public class AggregationTest extends AbstractQueryTest{ @Test public void test(){ - toString("max(cat.bodyWeight)", cat.bodyWeight.max()); - toString("min(cat.bodyWeight)", cat.bodyWeight.min()); - toString("avg(cat.bodyWeight)", cat.bodyWeight.avg()); + assertToString("max(cat.bodyWeight)", cat.bodyWeight.max()); + assertToString("min(cat.bodyWeight)", cat.bodyWeight.min()); + assertToString("avg(cat.bodyWeight)", cat.bodyWeight.avg()); - toString("count(*)", Expr.countAll()); - toString("count(cat)", cat.count()); - toString("count(distinct cat)", cat.countDistinct()); + assertToString("count(*)", Expr.countAll()); + assertToString("count(cat)", cat.count()); + assertToString("count(distinct cat)", cat.countDistinct()); } } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/BooleanOperationsTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/BooleanOperationsTest.java index 536f4eb68..a4532d98a 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/BooleanOperationsTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/BooleanOperationsTest.java @@ -6,10 +6,10 @@ public class BooleanOperationsTest extends AbstractQueryTest { @Test public void testBooleanOperations() { - toString("cust is null or cat is null", cust.isNull().or(cat.isNull())); - toString("cust is null and cat is null", cust.isNull() + assertToString("cust is null or cat is null", cust.isNull().or(cat.isNull())); + assertToString("cust is null and cat is null", cust.isNull() .and(cat.isNull())); - toString("not (cust is null)", cust.isNull().not()); + assertToString("not (cust is null)", cust.isNull().not()); cat.name.eq(cust.name.firstName).and( cat.bodyWeight.eq(kitten.bodyWeight)); cat.name.eq(cust.name.firstName).or( @@ -19,9 +19,9 @@ public class BooleanOperationsTest extends AbstractQueryTest { @Test public void testLogicalOperations() { // logical operations and, or, not - toString("cat = kitten or kitten = cat", cat.eq(kitten).or(kitten.eq(cat))); - toString("cat = kitten and kitten = cat", cat.eq(kitten).and(kitten.eq(cat))); - toString("cat is null and (kitten is null or kitten.bodyWeight > :a1)", + assertToString("cat = kitten or kitten = cat", cat.eq(kitten).or(kitten.eq(cat))); + assertToString("cat = kitten and kitten = cat", cat.eq(kitten).and(kitten.eq(cat))); + assertToString("cat is null and (kitten is null or kitten.bodyWeight > :a1)", cat.isNull().and(kitten.isNull().or(kitten.bodyWeight.gt(10)))); } } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java index 2d96492aa..635604b3b 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java @@ -13,11 +13,11 @@ public class CollectionTest extends AbstractQueryTest{ @Test public void test(){ - toString(":a1 in elements(cat.kittensSet)", cat.kittensSet.contains(new Cat())); - toString(":a1 in elements(cat.kittens)", cat.kittens.contains(new Cat())); + assertToString(":a1 in elements(cat.kittensSet)", cat.kittensSet.contains(new Cat())); + assertToString(":a1 in elements(cat.kittens)", cat.kittens.contains(new Cat())); - toString("cat in elements(cat1.kittens)", cat.in(cat1.kittens)); - toString("cat in elements(cat1.kittensSet)", cat.in(cat1.kittensSet)); + assertToString("cat in elements(cat1.kittens)", cat.in(cat1.kittens)); + assertToString("cat in elements(cat1.kittensSet)", cat.in(cat1.kittensSet)); } } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/ComparableTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/ComparableTest.java index 800293411..7c68b19b6 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/ComparableTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/ComparableTest.java @@ -12,12 +12,12 @@ public class ComparableTest extends AbstractQueryTest{ @Test public void testBinaryComparisonOperations() { // binary comparison operators =, >=, <=, <>, !=, like - toString("cat.bodyWeight = kitten.bodyWeight", cat.bodyWeight.eq(kitten.bodyWeight)); - toString("cat.bodyWeight >= kitten.bodyWeight", cat.bodyWeight.goe(kitten.bodyWeight)); - toString("cat.bodyWeight > kitten.bodyWeight", cat.bodyWeight.gt(kitten.bodyWeight)); - toString("cat.bodyWeight <= kitten.bodyWeight", cat.bodyWeight.loe(kitten.bodyWeight)); - toString("cat.bodyWeight < kitten.bodyWeight", cat.bodyWeight.lt(kitten.bodyWeight)); - toString("cat.bodyWeight != kitten.bodyWeight", cat.bodyWeight.ne(kitten.bodyWeight)); + assertToString("cat.bodyWeight = kitten.bodyWeight", cat.bodyWeight.eq(kitten.bodyWeight)); + assertToString("cat.bodyWeight >= kitten.bodyWeight", cat.bodyWeight.goe(kitten.bodyWeight)); + assertToString("cat.bodyWeight > kitten.bodyWeight", cat.bodyWeight.gt(kitten.bodyWeight)); + assertToString("cat.bodyWeight <= kitten.bodyWeight", cat.bodyWeight.loe(kitten.bodyWeight)); + assertToString("cat.bodyWeight < kitten.bodyWeight", cat.bodyWeight.lt(kitten.bodyWeight)); + assertToString("cat.bodyWeight != kitten.bodyWeight", cat.bodyWeight.ne(kitten.bodyWeight)); // toString("cat.name like :a1", cat.name.like("Kitty")); } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/DateTimeTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/DateTimeTest.java index b9bcd4406..6755504f3 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/DateTimeTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/DateTimeTest.java @@ -16,10 +16,10 @@ public class DateTimeTest extends AbstractQueryTest { @Test public void testDateOperations() { // current_date(), current_time(), current_timestamp() - toString("current_date()", EDate.currentDate()); - toString("current_date()", EDateTime.currentDate()); - toString("current_time()", ETime.currentTime()); - toString("current_timestamp()", EDateTime.currentTimestamp()); + assertToString("current_date()", EDate.currentDate()); + assertToString("current_date()", EDateTime.currentDate()); + assertToString("current_time()", ETime.currentTime()); + assertToString("current_timestamp()", EDateTime.currentTimestamp()); // second(...), minute(...), hour(...), day(...), month(...), year(...), catalog.effectiveDate.second(); catalog.effectiveDate.minute(); diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/EJBQLTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/EJBQLTest.java index 885af08e2..9a4e027cb 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/EJBQLTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/EJBQLTest.java @@ -25,9 +25,9 @@ public class EJBQLTest extends AbstractQueryTest{ // bit_length(), // mod() - toString("trim(cat.name)", cat.name.trim()); - toString("lower(cat.name)", cat.name.lower()); - toString("upper(cat.name)", cat.name.upper()); + assertToString("trim(cat.name)", cat.name.trim()); + assertToString("lower(cat.name)", cat.name.lower()); + assertToString("upper(cat.name)", cat.name.upper()); // cat.name.length(); } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java index 2c741ffae..04d424136 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java @@ -53,7 +53,7 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testArgumentHandling() { // Kitty is reused, so it should be used via one named parameter - toString( + assertToString( "cat.name = :a1 or cust.name.firstName = :a2 or kitten.name = :a1", cat.name.eq("Kitty").or(cust.name.firstName.eq("Hans")).or( kitten.name.eq("Kitty"))); @@ -63,10 +63,10 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testBasicOperations() { - toString("cat.bodyWeight = kitten.bodyWeight", cat.bodyWeight.eq(kitten.bodyWeight)); - toString("cat.bodyWeight != kitten.bodyWeight", cat.bodyWeight.ne(kitten.bodyWeight)); + assertToString("cat.bodyWeight = kitten.bodyWeight", cat.bodyWeight.eq(kitten.bodyWeight)); + assertToString("cat.bodyWeight != kitten.bodyWeight", cat.bodyWeight.ne(kitten.bodyWeight)); - toString("cat.bodyWeight + kitten.bodyWeight = kitten.bodyWeight", + assertToString("cat.bodyWeight + kitten.bodyWeight = kitten.bodyWeight", cat.bodyWeight.add(kitten.bodyWeight).eq(kitten.bodyWeight)); } @@ -83,7 +83,7 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testCustomExpressions() { - toString("myCustom(cust,cat)", new MyCustomExpr(cust, cat)); + assertToString("myCustom(cust,cat)", new MyCustomExpr(cust, cat)); } @Test @@ -104,8 +104,8 @@ public class FeaturesTest extends AbstractQueryTest{ // maxelement(cat.kittens); // minindex(cat.kittens); // maxindex(cat.kittens); - toString("cat.kittens[0]", cat.kittens(0)); - toString("cat.kittens[0]", cat.kittens.get(0)); + assertToString("cat.kittens[0]", cat.kittens(0)); + assertToString("cat.kittens[0]", cat.kittens.get(0)); // some, all, exists, any, in. } @@ -117,17 +117,17 @@ public class FeaturesTest extends AbstractQueryTest{ com.mysema.query.hql.domain.Cat.class, new Class[]{String.class}, cat.name); - toString("new " + com.mysema.query.hql.domain.Cat.class.getName() + assertToString("new " + com.mysema.query.hql.domain.Cat.class.getName() + "(cat.name)", c); - toString("new " + getClass().getName() + "$BookmarkDTO(cat.name)", + assertToString("new " + getClass().getName() + "$BookmarkDTO(cat.name)", new _BookmarkDTO(cat.name)); } @Test public void testEqualsAndNotEqualsForAllExpressions() { - toString("cat.name = cust.name.firstName", cat.name + assertToString("cat.name = cust.name.firstName", cat.name .eq(cust.name.firstName)); - toString("cat.name != cust.name.firstName", cat.name + assertToString("cat.name != cust.name.firstName", cat.name .ne(cust.name.firstName)); } @@ -161,7 +161,7 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testIsNullAndIsNotNullInFunctionalWay() { - toString("cat.bodyWeight is null", cat.bodyWeight.isNull()); + assertToString("cat.bodyWeight is null", cat.bodyWeight.isNull()); } @Test @@ -173,7 +173,7 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testStringConcatenations() { // string concatenation ...||... or concat(...,...) - toString("cat.name || kitten.name", cat.name.concat(kitten.name)); + assertToString("cat.name || kitten.name", cat.name.concat(kitten.name)); } // coalesce() and nullif() @@ -181,37 +181,37 @@ public class FeaturesTest extends AbstractQueryTest{ @Test public void testStringConversionOperations() { // str() for converting numeric or temporal values to a readable string - toString("str(cat.bodyWeight)", cat.bodyWeight.stringValue()); + assertToString("str(cat.bodyWeight)", cat.bodyWeight.stringValue()); } @Test public void testStringOperationsInFunctionalWay() { - toString("cat.name || cust.name.firstName", cat.name + assertToString("cat.name || cust.name.firstName", cat.name .concat(cust.name.firstName)); // toString("cat.name like :a1", cat.name.like("A%")); - toString("lower(cat.name)", cat.name.lower()); + assertToString("lower(cat.name)", cat.name.lower()); } @Test public void testToString() { - toString("cat", cat); - toString("cat.alive", cat.alive); - toString("cat.bodyWeight", cat.bodyWeight); - toString("cat.name", cat.name); + assertToString("cat", cat); + assertToString("cat.alive", cat.alive); + assertToString("cat.bodyWeight", cat.bodyWeight); + assertToString("cat.name", cat.name); - toString("cust.name", cust.name); - toString("cust.name.firstName = :a1", cust.name.firstName.eq("Martin")); + assertToString("cust.name", cust.name); + assertToString("cust.name.firstName = :a1", cust.name.firstName.eq("Martin")); // toString("cat.kittens as kitten", cat.kittens.as(kitten)); - toString("cat.bodyWeight + :a1", cat.bodyWeight.add(10)); - toString("cat.bodyWeight - :a1", cat.bodyWeight.subtract(10)); - toString("cat.bodyWeight * :a1", cat.bodyWeight.multiply(10)); - toString("cat.bodyWeight / :a1", cat.bodyWeight.divide(10)); + assertToString("cat.bodyWeight + :a1", cat.bodyWeight.add(10)); + assertToString("cat.bodyWeight - :a1", cat.bodyWeight.subtract(10)); + assertToString("cat.bodyWeight * :a1", cat.bodyWeight.multiply(10)); + assertToString("cat.bodyWeight / :a1", cat.bodyWeight.divide(10)); // toString("cat.bodyWeight as bw", cat.bodyWeight.as("bw")); - toString("kitten in elements(cat.kittens)", kitten.in(cat.kittens)); + assertToString("kitten in elements(cat.kittens)", kitten.in(cat.kittens)); // toString("distinct cat.bodyWeight", distinct(cat.bodyWeight)); } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java index ee3f1d516..d7e2aa0ef 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java @@ -15,32 +15,32 @@ public class MathTest extends AbstractQueryTest{ @Test public void test(){ PNumber path = QCat.cat.bodyWeight; - toString("(cat.bodyWeight - sum(cat.bodyWeight)) * cat.bodyWeight", path.subtract(path.sum()).multiply(path)); + assertToString("(cat.bodyWeight - sum(cat.bodyWeight)) * cat.bodyWeight", path.subtract(path.sum()).multiply(path)); } @Test public void testArithmeticOperationsInFunctionalWay() { - toString("cat.bodyWeight + :a1", cat.bodyWeight.add(10)); - toString("cat.bodyWeight - :a1", cat.bodyWeight.subtract(10)); - toString("cat.bodyWeight * :a1", cat.bodyWeight.multiply(10)); - toString("cat.bodyWeight / :a1", cat.bodyWeight.divide(10)); + assertToString("cat.bodyWeight + :a1", cat.bodyWeight.add(10)); + assertToString("cat.bodyWeight - :a1", cat.bodyWeight.subtract(10)); + assertToString("cat.bodyWeight * :a1", cat.bodyWeight.multiply(10)); + assertToString("cat.bodyWeight / :a1", cat.bodyWeight.divide(10)); - toString("cat.bodyWeight + :a1 < :a1", cat.bodyWeight.add(10.0).lt(10.0)); - toString("cat.bodyWeight - :a1 < :a1", cat.bodyWeight.subtract(10.0).lt(10.0)); - toString("cat.bodyWeight * :a1 < :a1", cat.bodyWeight.multiply(10.0).lt(10.0)); - toString("cat.bodyWeight / :a1 < :a2", cat.bodyWeight.divide(10.0).lt(20.0)); + assertToString("cat.bodyWeight + :a1 < :a1", cat.bodyWeight.add(10.0).lt(10.0)); + assertToString("cat.bodyWeight - :a1 < :a1", cat.bodyWeight.subtract(10.0).lt(10.0)); + assertToString("cat.bodyWeight * :a1 < :a1", cat.bodyWeight.multiply(10.0).lt(10.0)); + assertToString("cat.bodyWeight / :a1 < :a2", cat.bodyWeight.divide(10.0).lt(20.0)); - toString("(cat.bodyWeight + :a1) * :a2", cat.bodyWeight.add(10).multiply(20)); - toString("(cat.bodyWeight - :a1) * :a2", cat.bodyWeight.subtract(10).multiply(20)); - toString("cat.bodyWeight * :a1 + :a2", cat.bodyWeight.multiply(10).add(20)); - toString("cat.bodyWeight * :a1 - :a2", cat.bodyWeight.multiply(10).subtract(20)); + assertToString("(cat.bodyWeight + :a1) * :a2", cat.bodyWeight.add(10).multiply(20)); + assertToString("(cat.bodyWeight - :a1) * :a2", cat.bodyWeight.subtract(10).multiply(20)); + assertToString("cat.bodyWeight * :a1 + :a2", cat.bodyWeight.multiply(10).add(20)); + assertToString("cat.bodyWeight * :a1 - :a2", cat.bodyWeight.multiply(10).subtract(20)); QCat c1 = new QCat("c1"); QCat c2 = new QCat("c2"); QCat c3 = new QCat("c3"); - toString("c1.id + c2.id * c3.id", c1.id.add(c2.id.multiply(c3.id))); - toString("c1.id * (c2.id + c3.id)", c1.id.multiply(c2.id.add(c3.id))); - toString("(c1.id + c2.id) * c3.id", c1.id.add(c2.id).multiply(c3.id)); + assertToString("c1.id + c2.id * c3.id", c1.id.add(c2.id.multiply(c3.id))); + assertToString("c1.id * (c2.id + c3.id)", c1.id.multiply(c2.id.add(c3.id))); + assertToString("(c1.id + c2.id) * c3.id", c1.id.add(c2.id).multiply(c3.id)); } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/SubQueryTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/SubQueryTest.java index f3e5b12e4..dc0964371 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/SubQueryTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/SubQueryTest.java @@ -28,7 +28,17 @@ public class SubQueryTest extends AbstractQueryTest{ assertEquals("from Cat cat", query.toString()); query.from(fatcat); - assertEquals("from Cat cat, Cat fatcat", query.toString()); + assertEquals("from Cat cat, Cat fatcat", query.toString()); + } + + @Test + public void uniqueProjection(){ + assertToString("(select cat from Cat cat)", sub().from(cat).unique(cat)); + } + + @Test + public void listProjection(){ + assertToString("(select cat from Cat cat)", sub().from(cat).list(cat)); } @Test @@ -37,9 +47,9 @@ public class SubQueryTest extends AbstractQueryTest{ // toString("exists (select cat from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).exists()); // toString("exists (select cat from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).unique(cat).exists()); - toString("exists (select 1 from Cat cat)", sub().from(cat).exists()); - toString("exists (select 1 from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).exists()); - toString("exists (select 1 from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).unique(cat).exists()); + assertToString("exists (select 1 from Cat cat)", sub().from(cat).exists()); + assertToString("exists (select 1 from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).exists()); + assertToString("exists (select 1 from Cat cat where cat.weight < :a1)", sub().from(cat).where(cat.weight.lt(1)).unique(cat).exists()); } }