From e993b8073733f84d8199e79c678464b9ba7ebabb Mon Sep 17 00:00:00 2001 From: Lassi Immonen Date: Wed, 22 Sep 2010 05:44:23 +0000 Subject: [PATCH] Added iterate test --- .../mysema/query/mongodb/MongodbQuery.java | 6 ++-- .../query/mongodb/MongodbQueryTest.java | 33 ++++++++++++++++++- .../mysema/query/mongodb/domain/QUser.java | 6 ++++ .../com/mysema/query/mongodb/domain/User.java | 11 +++++++ 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java index 67b10dabc..4b87e9454 100644 --- a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java +++ b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbQuery.java @@ -138,8 +138,7 @@ public class MongodbQuery implements SimpleQuery>, @Override public List listDistinct() { - queryMixin.setDistinct(true); - return list(); + throw new UnsupportedOperationException(); } @Override @@ -164,8 +163,7 @@ public class MongodbQuery implements SimpleQuery>, @Override public long countDistinct() { - queryMixin.setDistinct(true); - return count(); + throw new UnsupportedOperationException(); } private DBObject createQuery() { diff --git a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/MongodbQueryTest.java b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/MongodbQueryTest.java index 0a1a124af..db467fb67 100644 --- a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/MongodbQueryTest.java +++ b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/MongodbQueryTest.java @@ -8,6 +8,7 @@ package com.mysema.query.mongodb; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; +import java.util.Iterator; import java.util.List; import org.junit.Before; @@ -88,6 +89,36 @@ public class MongodbQueryTest { assertQuery(user.firstName.matches("Jaakko").not(), u3, u4, u2); } + //This is not supported yet +// @Test +// public void testUniqueResult() { +// +// addUser("Dille", "Duplikaatti"); +// addUser("Dille", "Duplikaatti"); +// +// assertEquals(2, where(user.firstName.eq("Dille")).count()); +// assertEquals(1, where(user.firstName.eq("Dille")).countDistinct()); +// +// } + + @Test + public void testIterate() { + + User a = addUser("A", "A"); + User b = addUser("A1", "B"); + User c = addUser("A2", "C"); + + Iterator i = where(user.firstName.startsWith("A")) + .orderBy(user.firstName.asc()) + .iterate(); + + assertEquals(a, i.next()); + assertEquals(b, i.next()); + assertEquals(c, i.next()); + assertEquals(false, i.hasNext()); + + } + private void assertQuery(Predicate e, User ... expected) { assertQuery(where(e).orderBy(user.lastName.asc(), user.firstName.asc()), expected ); } @@ -102,7 +133,7 @@ public class MongodbQueryTest { } private void assertQuery(MongodbQuery query, User ... expected ) { - System.out.println(query.toString()); + //System.out.println(query.toString()); List results = query.list(); assertNotNull(results); diff --git a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/QUser.java b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/QUser.java index 5cd2c0882..f2538c653 100644 --- a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/QUser.java +++ b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/QUser.java @@ -5,8 +5,12 @@ */ package com.mysema.query.mongodb.domain; +import java.util.Date; + import com.mysema.query.types.PathMetadataFactory; +import com.mysema.query.types.path.DatePath; import com.mysema.query.types.path.EntityPathBase; +import com.mysema.query.types.path.NumberPath; import com.mysema.query.types.path.StringPath; public class QUser extends EntityPathBase { @@ -21,4 +25,6 @@ public class QUser extends EntityPathBase { public final StringPath firstName = createString("firstName"); public final StringPath lastName = createString("lastName"); + public final DatePath created = createDate("date", Date.class); + public final NumberPath age = createNumber("age", Integer.class); } diff --git a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/User.java b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/User.java index 5e2b0b8a7..8c9ae242a 100644 --- a/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/User.java +++ b/querydsl-mongodb/src/test/java/com/mysema/query/mongodb/domain/User.java @@ -5,6 +5,8 @@ */ package com.mysema.query.mongodb.domain; +import java.util.Date; + import org.bson.types.ObjectId; import com.google.code.morphia.annotations.Entity; @@ -18,11 +20,20 @@ public class User { String firstName; String lastName; + Date created; + + int age; + public User() { } public User(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; + this.created = new Date(); + } + + public User(String firstName, String lastName, int age, Date created) { + this.firstName = firstName; this.lastName = lastName; this.age = age; this.created = created; } @Override