From 82ea62ba5f1ea043f867bec3bd9e3d3d1a13eeba Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 18 Feb 2011 11:53:14 +0000
Subject: [PATCH] Back port NOT filter fix from OpenDS SDK + add unit tests.
---
opendj3/opendj-modules/opendj-sdk/src/main/java/org/opends/sdk/Filter.java | 4 ++--
opendj3/opendj-modules/opendj-sdk/src/test/java/org/opends/sdk/FilterTestCase.java | 55 ++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 38 insertions(+), 21 deletions(-)
diff --git a/opendj3/opendj-modules/opendj-sdk/src/main/java/org/opends/sdk/Filter.java b/opendj3/opendj-modules/opendj-sdk/src/main/java/org/opends/sdk/Filter.java
index f52bbba..691df37 100644
--- a/opendj3/opendj-modules/opendj-sdk/src/main/java/org/opends/sdk/Filter.java
+++ b/opendj3/opendj-modules/opendj-sdk/src/main/java/org/opends/sdk/Filter.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2009-2010 Sun Microsystems, Inc.
+ * Copyright 2009-2011 Sun Microsystems, Inc.
*/
package org.opends.sdk;
@@ -497,7 +497,7 @@
public StringBuilder visitNotFilter(final StringBuilder builder,
final Filter subFilter)
{
- builder.append("(|");
+ builder.append("(!");
subFilter.accept(this, builder);
builder.append(')');
return builder;
diff --git a/opendj3/opendj-modules/opendj-sdk/src/test/java/org/opends/sdk/FilterTestCase.java b/opendj3/opendj-modules/opendj-sdk/src/test/java/org/opends/sdk/FilterTestCase.java
index 224b370..0f5a90a 100644
--- a/opendj3/opendj-modules/opendj-sdk/src/test/java/org/opends/sdk/FilterTestCase.java
+++ b/opendj3/opendj-modules/opendj-sdk/src/test/java/org/opends/sdk/FilterTestCase.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2010 Sun Microsystems, Inc.
+ * Portions copyright 2011 ForgeRock AS
*/
package org.opends.sdk;
@@ -110,54 +111,54 @@
list2.add(and);
return new Object[][] {
- { "(objectClass=\\5ctest\\2a\\28Value\\29)", equal },
+ { "(objectClass=\\5Ctest\\2A\\28Value\\29)", equal },
{ "(objectClass=)", equal2 },
- { "(sn~=\\5ctest\\2a\\28Value\\29)", approx },
+ { "(sn~=\\5Ctest\\2A\\28Value\\29)", approx },
- { "(employeeNumber>=\\5ctest\\2a\\28Value\\29)", greater },
+ { "(employeeNumber>=\\5Ctest\\2A\\28Value\\29)", greater },
- { "(dob<=\\5ctest\\2a\\28Value\\29)", less },
+ { "(dob<=\\5Ctest\\2A\\28Value\\29)", less },
{ "(login=*)", presense },
- { "(givenName=\\5cJo\\2a\\28\\29*\\5cn\\2a\\28\\29)", substring1 },
+ { "(givenName=\\5CJo\\2A\\28\\29*\\5Cn\\2A\\28\\29)", substring1 },
{
- "(givenName=\\5cJo\\2a\\28\\29*\\5cwid\\2a\\28get\\29*\\2a*\\5cn\\2a\\28\\29)",
+ "(givenName=\\5CJo\\2A\\28\\29*\\5Cwid\\2A\\28get\\29*\\2A*\\5Cn\\2A\\28\\29)",
substring2 },
- { "(givenName=*\\5cn\\2a\\28\\29)", substring3 },
+ { "(givenName=*\\5Cn\\2A\\28\\29)", substring3 },
- { "(givenName=\\5cJo\\2a\\28\\29*)", substring4 },
+ { "(givenName=\\5CJo\\2A\\28\\29*)", substring4 },
- { "(givenName=*\\5cwid\\2a\\28get\\29*\\2a*)", substring5 },
+ { "(givenName=*\\5Cwid\\2A\\28get\\29*\\2A*)", substring5 },
- { "(cn:2.4.6.8.19:=\\5cJohn\\2a \\28Doe\\29)", extensible1 },
+ { "(cn:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)", extensible1 },
- { "(cn:dn:2.4.6.8.19:=\\5cJohn\\2a \\28Doe\\29)", extensible2 },
+ { "(cn:dn:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)", extensible2 },
- { "(:dn:2.4.6.8.19:=\\5cJohn\\2a \\28Doe\\29)", extensible3 },
+ { "(:dn:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)", extensible3 },
- { "(cn:dn:=\\5cJohn\\2a \\28Doe\\29)", extensible4 },
+ { "(cn:dn:=\\5CJohn\\2A \\28Doe\\29)", extensible4 },
- { "(:2.4.6.8.19:=\\5cJohn\\2a \\28Doe\\29)", extensible5 },
+ { "(:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)", extensible5 },
{
- "(&(objectClass=\\5ctest\\2a\\28Value\\29)(sn~=\\5ctest\\2a\\28Value\\29))",
+ "(&(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29))",
Filter.newAndFilter(list1) },
{
- "(|(objectClass=\\5ctest\\2a\\28Value\\29)(sn~=\\5ctest\\2a\\28Value\\29))",
+ "(|(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29))",
Filter.newOrFilter(list1) },
- { "(!(objectClass=\\5ctest\\2a\\28Value\\29))",
+ { "(!(objectClass=\\5Ctest\\2A\\28Value\\29))",
Filter.newNotFilter(equal) },
{
- "(|(givenName=\\5cJo\\2a\\28\\29*\\5cn\\2a\\28\\29)(cn:2.4.6.8.19:=\\5cJohn\\2a \\28Doe\\29)"
- + "(&(objectClass=\\5ctest\\2a\\28Value\\29)(sn~=\\5ctest\\2a\\28Value\\29)))",
+ "(|(givenName=\\5CJo\\2A\\28\\29*\\5Cn\\2A\\28\\29)(cn:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)"
+ + "(&(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29)))",
Filter.newOrFilter(list2) }
};
@@ -183,6 +184,22 @@
/**
+ * Decodes the specified filter strings.
+ *
+ * @param filterStr
+ * @param filter
+ * @throws Exception
+ */
+ @Test(dataProvider = "filterstrings")
+ public void testToString(final String filterStr, final Filter filter)
+ throws Exception
+ {
+ assertEquals(filterStr, filter.toString());
+ }
+
+
+
+ /**
* Decodes the erroneous filter strings.
*
* @param filterStr
--
Gitblit v1.10.0