diff --git a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java index 5d632119b..7acb3346c 100644 --- a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java +++ b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneQuery.java @@ -9,6 +9,7 @@ import java.io.IOException; import java.util.List; import org.apache.lucene.document.Document; +import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.Searcher; @@ -30,7 +31,7 @@ import com.mysema.query.types.Predicate; /** * LuceneQuery is a Querydsl query implementation for Lucene queries. - * + * * @author vema */ public class LuceneQuery implements SimpleQuery, @@ -52,7 +53,7 @@ public class LuceneQuery implements SimpleQuery, public LuceneQuery(final Searcher searcher) { this(LuceneSerializer.DEFAULT, searcher); } - + private long innerCount(){ try { final int maxDoc = searcher.maxDoc(); @@ -62,22 +63,22 @@ public class LuceneQuery implements SimpleQuery, return searcher.search(createQuery(), maxDoc).totalHits; } catch (final IOException e) { throw new QueryException(e); - } + } } - + @Override public long count() { - return innerCount(); + return innerCount(); } @Override public long countDistinct() { - return innerCount(); + return innerCount(); } private Query createQuery() { if (queryMixin.getMetadata().getWhere() == null) { - throw new QueryException("Where clause was null."); + return new MatchAllDocsQuery(); } return serializer.toQuery(queryMixin.getMetadata().getWhere(), queryMixin.getMetadata()); @@ -131,14 +132,14 @@ public class LuceneQuery implements SimpleQuery, public CloseableIterator iterateDistinct() { return iterate(); } - + private List innerList(){ - return new IteratorAdapter(iterate()).asList(); + return new IteratorAdapter(iterate()).asList(); } - + @Override public List list() { - return innerList(); + return innerList(); } @Override diff --git a/querydsl-lucene/src/test/java/com/mysema/query/LuceneSerializerTest.java b/querydsl-lucene/src/test/java/com/mysema/query/LuceneSerializerTest.java index 9dadc1713..c360caaa9 100644 --- a/querydsl-lucene/src/test/java/com/mysema/query/LuceneSerializerTest.java +++ b/querydsl-lucene/src/test/java/com/mysema/query/LuceneSerializerTest.java @@ -218,10 +218,10 @@ public class LuceneSerializerTest { @Test public void eq_Numeric() throws Exception{ - testQuery(longField.eq(1l), "longField:" + LONG_PREFIX_CODED, 1); - testQuery(shortField.eq((short)1), "shortField:" + SHORT_PREFIX_CODED, 1); - testQuery(byteField.eq((byte)1), "byteField:" + BYTE_PREFIX_CODED, 1); - testQuery(floatField.eq((float)1.0), "floatField:" + FLOAT_PREFIX_CODED, 1); + testQuery(longField.eq(1l), "longField:" + LONG_PREFIX_CODED, 1); + testQuery(shortField.eq((short)1), "shortField:" + SHORT_PREFIX_CODED, 1); + testQuery(byteField.eq((byte)1), "byteField:" + BYTE_PREFIX_CODED, 1); + testQuery(floatField.eq((float)1.0), "floatField:" + FLOAT_PREFIX_CODED, 1); } @Test diff --git a/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneQueryTest.java b/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneQueryTest.java index 1380d0d60..bff39f8aa 100644 --- a/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneQueryTest.java +++ b/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneQueryTest.java @@ -47,9 +47,9 @@ import com.mysema.query.types.path.StringPath; /** * Tests for LuceneQuery - * + * * @author vema - * + * */ public class LuceneQueryTest { @@ -131,9 +131,8 @@ public class LuceneQueryTest { searcher.close(); } - @Test(expected = QueryException.class) public void count_Empty_Where_Clause() { - query.count(); + assertEquals(4, query.count()); } @Test @@ -521,6 +520,10 @@ public class LuceneQueryTest { ++count; } assertEquals(4, count); + } + @Test + public void All_By_Excluding_Where() { + assertEquals(4, query.list().size()); } }