Add tests for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
index d2d145e..dedde6a 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
@@ -24,7 +24,6 @@
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.directory.api.ldap.model.filter.FilterParser;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
index 1e5d256..206720e 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
@@ -27,7 +27,6 @@
 
 import java.text.ParseException;
 
-import org.apache.directory.api.ldap.model.filter.FilterParser;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
index 95d8a21..9a611b0 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
@@ -33,14 +33,12 @@
 import java.util.Locale;
 
 import org.apache.directory.api.ldap.model.entry.Value;
-import org.apache.directory.api.ldap.model.filter.FilterParser;
 import org.apache.directory.api.util.Strings;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;
 
 
-
 /**
  * Tests the FilterParserImpl class.
  * 
@@ -411,6 +409,62 @@
     }
 
 
+    /**
+     * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+     */
+    @Test
+    public void testEqualsFilterForDnWithLeadingHash() throws ParseException
+    {
+        String str = "(memberOf=CN=\\5c#SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+        EqualityNode<?> node = ( EqualityNode<?> ) FilterParser.parse( str, true );
+        assertEquals( "memberOf", node.getAttribute() );
+        assertEquals( "CN=\\#SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+    }
+
+
+    /**
+     * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+     */
+    @Test
+    public void testEqualsFilterForDnWithLeadingHashHex() throws ParseException
+    {
+        String str = "(memberOf=CN=\\5C23SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+        EqualityNode<?> node = ( EqualityNode<?> ) FilterParser.parse( str, true );
+        assertEquals( "memberOf", node.getAttribute() );
+        assertEquals( "CN=\\23SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+    }
+
+
+    /**
+     * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+     */
+    @Test
+    public void testExtensibleFilterForDnWithLeadingHash() throws ParseException
+    {
+        String str = "(memberOf:1.2.840.113556.1.4.1941:=CN=\\5c#SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+        ExtensibleNode node = ( ExtensibleNode ) FilterParser.parse( str, true );
+        assertEquals( "memberOf", node.getAttribute() );
+        assertEquals( "CN=\\#SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+        assertEquals( "1.2.840.113556.1.4.1941", node.getMatchingRuleId() );
+        assertFalse( node.hasDnAttributes() );
+    }
+
+
+    /**
+     * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+     */
+    @Test
+    public void testExtensibleFilterForDnWithLeadingHashHex() throws ParseException
+    {
+        String str = "(memberOf:1.2.840.113556.1.4.1941:=CN=\\5C23SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+        ExtensibleNode node = ( ExtensibleNode ) FilterParser.parse( str, true );
+        assertEquals( "memberOf", node.getAttribute() );
+        assertEquals( "CN=\\23SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+        assertEquals( "1.2.840.113556.1.4.1941", node.getMatchingRuleId() );
+        assertFalse( node.hasDnAttributes() );
+    }
+
+
     @Test
     public void testReuseParser() throws ParseException
     {
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
index 5fd5b0a..eb2a1d9 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
@@ -24,7 +24,6 @@
 
 import java.text.ParseException;
 
-import org.apache.directory.api.ldap.model.filter.FilterParser;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
index 47148b4..03860af 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
@@ -27,8 +27,6 @@
 
 import java.util.List;
 
-import org.apache.directory.api.ldap.model.filter.FilterVisitor;
-
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;