You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2007/01/25 14:41:14 UTC
svn commit: r499793 -
/directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java
Author: elecharny
Date: Thu Jan 25 05:41:13 2007
New Revision: 499793
URL: http://svn.apache.org/viewvc?view=rev&rev=499793
Log:
Added a test for DIRSERVER-826. The test is passi,g, the server code has not been modified
Modified:
directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java
Modified: directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java?view=diff&rev=499793&r1=499792&r2=499793
==============================================================================
--- directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java (original)
+++ directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/SearchTest.java Thu Jan 25 05:41:13 2007
@@ -58,6 +58,9 @@
public static final String RDN = "cn=Tori Amos";
public static final String RDN2 = "cn=Rolling-Stones";
public static final String PERSON_DESCRIPTION = "an American singer-songwriter";
+ private static final String HEATHER_RDN = "cn=Heather Graham";
+ private static final String filter = "(objectclass=*)";
+
private static final byte[] jpeg = new byte[]
{
@@ -125,6 +128,16 @@
return attributes;
}
+
+ protected void checkForAttributes( Attributes attrs, String[] attrNames )
+ {
+ for ( int i = 0; i < attrNames.length; i++ )
+ {
+ String attrName = attrNames[i];
+
+ assertNotNull( "Check if attr " + attrName + " is present", attrs.get( attrNames[i] ) );
+ }
+ }
/**
@@ -154,6 +167,18 @@
attributes.put( "description", "an English singer-songwriter" );
ctx.createSubcontext( RDN2, attributes );
+ // Create entry for Heather Graham
+ Attributes heather = new AttributesImpl();
+ Attribute ocls = new AttributeImpl( "objectClass" );
+ ocls.add( "top" );
+ ocls.add( "person" );
+ heather.put( ocls );
+ heather.put( "cn", "Heather Nova" );
+ heather.put( "sn", "Nova" );
+
+ ctx.createSubcontext( HEATHER_RDN, heather );
+
+
}
@@ -986,5 +1011,64 @@
{
assertTrue( true );
}
+ }
+
+ /**
+ * Check if user and operational attributes are present, if both "*" and "+" are requested.
+ */
+ public void testSearchOperationalAndUserAttributes() throws NamingException
+ {
+ SearchControls ctls = new SearchControls();
+
+ ctls.setSearchScope( SearchControls.OBJECT_SCOPE );
+ ctls.setReturningAttributes( new String[]
+ { "+", "*" } );
+
+ String[] userAttrNames =
+ { "objectClass", "sn", "cn" };
+
+ String[] opAttrNames =
+ { "creatorsName", "createTimestamp" };
+
+ NamingEnumeration result = ctx.search( HEATHER_RDN, filter, ctls );
+
+ if ( result.hasMore() )
+ {
+ SearchResult entry = ( SearchResult ) result.next();
+ Attributes attrs = entry.getAttributes();
+
+ assertNotNull( attrs );
+
+ checkForAttributes( attrs, userAttrNames );
+ checkForAttributes( attrs, opAttrNames );
+ }
+ else
+ {
+ fail( "entry " + HEATHER_RDN + " not found" );
+ }
+
+ result.close();
+
+ ctls.setReturningAttributes( new String[]
+ { "*", "+" } );
+
+ result = ctx.search( HEATHER_RDN, filter, ctls );
+
+ if ( result.hasMore() )
+ {
+ SearchResult entry = ( SearchResult ) result.next();
+ Attributes attrs = entry.getAttributes();
+
+ assertNotNull( attrs );
+
+ checkForAttributes( attrs, userAttrNames );
+ checkForAttributes( attrs, opAttrNames );
+ }
+ else
+ {
+ fail( "entry " + HEATHER_RDN + " not found" );
+ }
+
+ result.close();
}
}