You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sz...@apache.org on 2005/11/01 16:33:17 UTC

svn commit: r330074 - in /directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search: AllTests.java SearchFilterSimpleTest.java

Author: szoerner
Date: Tue Nov  1 07:33:13 2005
New Revision: 330074

URL: http://svn.apache.org/viewcvs?rev=330074&view=rev
Log:
Modified test case for search op with NOT operarator and added it to the suite.

Modified:
    directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/AllTests.java
    directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java   (contents, props changed)

Modified: directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/AllTests.java
URL: http://svn.apache.org/viewcvs/directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/AllTests.java?rev=330074&r1=330073&r2=330074&view=diff
==============================================================================
--- directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/AllTests.java (original)
+++ directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/AllTests.java Tue Nov  1 07:33:13 2005
@@ -32,6 +32,7 @@
     {
         TestSuite suite = new TestSuite("Search");
 
+        suite.addTestSuite(SearchFilterSimpleTest.class);
         suite.addTestSuite(SearchScopeTest.class);
         suite.addTestSuite(IllegalSearchFilterTest.class);
         suite.addTestSuite(SearchFilterAttributeNamesTest.class);

Modified: directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java
URL: http://svn.apache.org/viewcvs/directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java?rev=330074&r1=330073&r2=330074&view=diff
==============================================================================
--- directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java (original)
+++ directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java Tue Nov  1 07:33:13 2005
@@ -20,19 +20,19 @@
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
-import javax.naming.directory.BasicAttribute;
-import javax.naming.directory.BasicAttributes;
 import javax.naming.directory.DirContext;
 import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
 
 import org.apache.ldap.testsuite.ldaptests.jndi.BaseProtocolTest;
+import org.apache.ldap.testsuite.ldaptests.jndi.util.AttributesFactory;
 
 /**
- * Tests for the search operations with JNDI.
+ * Tests for the search operations with JNDI containing simple filter
+ * expressions. All boolean operators are covered.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- * @version $Rev: $
+ * @version $Rev$
  */
 public class SearchFilterSimpleTest extends BaseProtocolTest
 {
@@ -43,19 +43,6 @@
 
     static final String[] lastNames = { "Amos", "Nova", "Morisette", "Bush", "Apple" };
 
-    protected Attributes getPersonAttributes(Person p)
-    {
-        Attributes attributes = new BasicAttributes();
-        Attribute attribute = new BasicAttribute("objectClass");
-        attribute.add("top");
-        attribute.add("person");
-        attributes.put(attribute);
-        attributes.put("sn", p.sn);
-        attributes.put("cn", p.cn);
-
-        return attributes;
-    }
-
     public void setUp() throws NamingException
     {
         super.setUp();
@@ -63,10 +50,17 @@
         ctx = this.createContext();
         ctx = (DirContext) ctx.lookup(this.getTestContainerRdn());
 
+        // Create person entries
         for (int i = 0; i < lastNames.length; ++i) {
-            Person p = new Person(firstNames[i], lastNames[i]);
-            ctx.createSubcontext("cn=" + p.cn, getPersonAttributes(p));
+            String cn = firstNames[i] + " " + lastNames[i];
+            Attributes person = AttributesFactory.createPersonAttributes(cn, lastNames[i]);
+            ctx.createSubcontext("cn=" + cn, person);
         }
+
+        // Create an organization Unit
+        String ou = "anOrgUnit";
+        Attributes orgUnit = AttributesFactory.createOrganizationalUnitAttributes(ou);
+        ctx.createSubcontext("ou=" + ou, orgUnit);
     }
 
     public void tearDown() throws NamingException
@@ -83,7 +77,7 @@
         SearchControls ctls = new SearchControls();
         ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
 
-        NamingEnumeration enm = ctx.search("", "sn=Amos", ctls);
+        NamingEnumeration enm = ctx.search("", "(sn=Amos)", ctls);
         assertTrue(enm.hasMore());
         int numberOfEntries = 0;
         while (enm.hasMore()) {
@@ -98,35 +92,53 @@
         }
 
         assertEquals("number of entries in result", 1, numberOfEntries);
+        enm.close();
     }
 
+    /**
+     * Test with a search filter which contains an NOT operator.
+     */
     public void testFilterWithNot() throws NamingException
     {
-
         SearchControls ctls = new SearchControls();
         ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
 
-        NamingEnumeration enm = ctx.search("", "(!(sn=Amos))", ctls);
+        // Filter "(!(objectClass=person))"
+        //
+        NamingEnumeration enm = ctx.search("", "(!(objectClass=person))", ctls);
         assertTrue(enm.hasMore());
         int numberOfEntries = 0;
         while (enm.hasMore()) {
             SearchResult entry = (SearchResult) enm.next();
             Attributes attrs = entry.getAttributes();
-            Attribute sn = attrs.get("sn");
+            Attribute ocls = attrs.get("objectClass");
 
-            assertFalse(sn.contains("Amos"));
+            assertFalse(ocls.contains("person"));
 
             numberOfEntries++;
         }
-        assertEquals("number of entries in result", firstNames.length - 1, numberOfEntries);
+        // Check whether number of entries foud is 1 (the org unit)
+        assertEquals("number of entries in result", 1, numberOfEntries);
+        enm.close();
+        
+        // Filter "(!(objectClass=*))"
+        //
+        enm = ctx.search("", "(!(objectClass=*))", ctls);
+        assertFalse("entries found", enm.hasMore());
+        enm.close();
     }
 
+    /**
+     * Test with search filters which contain an AND operator.
+     */
     public void testFilterWithAnd() throws NamingException
     {
 
         SearchControls ctls = new SearchControls();
         ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
 
+        // Filter "(&(objectClass=person)(sn=Amos))"
+        //
         NamingEnumeration enm = ctx.search("", "(&(objectClass=person)(sn=Amos))", ctls);
         assertTrue(enm.hasMore());
         int numberOfEntries = 0;
@@ -138,8 +150,18 @@
             numberOfEntries++;
         }
         assertEquals("number of entries in result", 1, numberOfEntries);
+        enm.close();
+        
+        // Filter "(&(sn=Amos)(sn=Bush))"
+        //
+        enm = ctx.search("", "(&(sn=Amos)(sn=Bush))", ctls);
+        assertFalse("entries found", enm.hasMore());
+        enm.close();
     }
 
+    /**
+     * Test with a search filter which contains an OR operator.
+     */
     public void testFilterWithOr() throws NamingException
     {
 
@@ -157,18 +179,6 @@
             numberOfEntries++;
         }
         assertEquals("number of entries in result", 2, numberOfEntries);
-    }
-
-    class Person
-    {
-
-        Person(String firstName, String lastName) {
-            this.sn = lastName;
-            this.cn = firstName + " " + lastName;
-        }
-
-        String sn;
-
-        String cn;
+        enm.close();
     }
 }

Propchange: directory/testsuite/trunk/ldaptests/src/main/java/org/apache/ldap/testsuite/ldaptests/jndi/ops/search/SearchFilterSimpleTest.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision