From 7294ff77615e6eaad590f5824e173913ab60c83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sat, 21 Mar 2015 21:13:29 +0200 Subject: [PATCH] Add more tests --- .../querydsl/mongodb/MongodbQueryTest.java | 82 ++++++++++++++++++- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java index 13014c80f..a41666a55 100644 --- a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java +++ b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java @@ -143,18 +143,43 @@ public class MongodbQueryTest { assertFalse(query(mapEntity).where(mapEntity.properties.containsKey("key2")).exists()); } + @Test + public void Contains_Key_Not() { + MapEntity entity = new MapEntity(); + entity.getProperties().put("key", "value"); + ds.save(entity); + + assertFalse(query(mapEntity).where(mapEntity.properties.get("key").isNotNull().not()).exists()); + assertTrue(query(mapEntity).where(mapEntity.properties.get("key2").isNotNull().not()).exists()); + + assertFalse(query(mapEntity).where(mapEntity.properties.containsKey("key").not()).exists()); + assertTrue(query(mapEntity).where(mapEntity.properties.containsKey("key2").not()).exists()); + } + @Test public void Equals_Ignore_Case() { assertTrue(where(user.firstName.equalsIgnoreCase("jAaKko")).exists()); assertFalse(where(user.firstName.equalsIgnoreCase("AaKk")).exists()); } + @Test + public void Equals_Ignore_Case_Not() { + assertTrue(where(user.firstName.equalsIgnoreCase("jAaKko").not()).exists()); + assertTrue(where(user.firstName.equalsIgnoreCase("AaKk").not()).exists()); + } + @Test public void Equals_and_Between() { assertQuery(user.firstName.startsWith("Jaa").and(user.age.between(20, 30)), u2, u1); assertQuery(user.firstName.startsWith("Jaa").and(user.age.goe(20).and(user.age.loe(30))), u2, u1); } + @Test + public void Equals_and_Between_Not() { + assertQuery(user.firstName.startsWith("Jaa").and(user.age.between(20, 30)).not(), u3, u4); + assertQuery(user.firstName.startsWith("Jaa").and(user.age.goe(20).and(user.age.loe(30))).not(), u3, u4); + } + @Test public void Exists() { assertTrue(where(user.firstName.eq("Jaakko")).exists()); @@ -292,7 +317,6 @@ public class MongodbQueryTest { assertQuery(where(user.firstName.eq("Jaana"), user.lastName.eq("Aakkonen")), u3); assertQuery(user.firstName.ne("Jaana"), u2, u1); - } @Test @@ -311,6 +335,22 @@ public class MongodbQueryTest { assertQuery(user.firstName.matches(".*aa.*[^i]$"), u3, u4, u1); } + @Test + public void RegexQueries_Not() { + assertQuery(user.firstName.startsWith("Jaan").not(), u2, u1); + assertQuery(user.firstName.startsWith("jaan").not(), u3, u4, u2, u1); + assertQuery(user.firstName.startsWithIgnoreCase("jaan").not(), u2, u1); + + assertQuery(user.lastName.endsWith("unen").not(), u3, u4); + + assertQuery(user.lastName.endsWithIgnoreCase("onen").not(), u2, u1); + + assertQuery(user.lastName.contains("oN").not(), u3, u2, u1); + assertQuery(user.lastName.containsIgnoreCase("on").not(), u2, u1); + + assertQuery(user.firstName.matches(".*aa.*[^i]$").not(), u2); + } + @Test public void Like() { assertQuery(user.firstName.like("Jaan")); @@ -320,22 +360,47 @@ public class MongodbQueryTest { assertQuery(user.lastName.like("%unen"), u2, u1); } + @Test + public void Like_Not() { + assertQuery(user.firstName.like("Jaan").not(), u3, u4, u2, u1); + assertQuery(user.firstName.like("Jaan%").not(), u2, u1); + assertQuery(user.firstName.like("jaan%").not(), u3, u4, u2, u1); + + assertQuery(user.lastName.like("%unen").not(), u3, u4); + } + @Test public void IsNotNull() { assertQuery(user.firstName.isNotNull(), u3, u4, u2, u1); } + @Test + public void IsNotNull_Not() { + assertQuery(user.firstName.isNotNull().not()); + } + @Test public void IsNull() { assertQuery(user.firstName.isNull()); } + @Test + public void IsNull_Not() { + assertQuery(user.firstName.isNull().not(), u3, u4, u2, u1); + } + @Test public void IsEmpty() { assertQuery(user.firstName.isEmpty()); assertQuery(user.friends.isEmpty(), u1); } + @Test + public void IsEmpty_Not() { + assertQuery(user.firstName.isEmpty().not(), u3, u4, u2, u1); + assertQuery(user.friends.isEmpty().not(), u3, u4, u2); + } + @Test public void Not() { assertQuery(user.firstName.eq("Jaakko").not(), u3, u4, u2); @@ -349,6 +414,11 @@ public class MongodbQueryTest { assertQuery(user.lastName.eq("Aakkonen").or(user.lastName.eq("BeekkoNen")), u3, u4); } + @Test + public void Or_Not() { + assertQuery(user.lastName.eq("Aakkonen").or(user.lastName.eq("BeekkoNen")).not(), u2, u1); + } + @Test public void Iterate() { User a = addUser("A", "A"); @@ -413,8 +483,9 @@ public class MongodbQueryTest { predicates.add(list.isNotEmpty()); for (Predicate predicate : predicates) { - where(predicate).count(); - where(predicate.not()).count(); + long count1 = where(predicate).count(); + long count2 = where(predicate.not()).count(); + assertEquals(predicate.toString(), 4, count1 + count2); } } @@ -453,6 +524,11 @@ public class MongodbQueryTest { assertQuery(user.addresses.size().eq(2), u1); } + @Test + public void Size_Not() { + assertQuery(user.addresses.size().eq(2).not(), u3, u4, u2); + } + @Test public void ReadPreference() { MorphiaQuery query = query();