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 2013/06/25 23:54:09 UTC
svn commit: r1496649 - in /directory/apacheds/trunk:
ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java
Author: elecharny
Date: Tue Jun 25 21:54:08 2013
New Revision: 1496649
URL: http://svn.apache.org/r1496649
Log:
Adding tests to check that we can insert null values in Attributes that accept such addition
Modified:
directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java
Modified: directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java?rev=1496649&r1=1496648&r2=1496649&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java Tue Jun 25 21:54:08 2013
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@@ -37,6 +38,7 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.entry.Value;
+import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.exception.LdapNoPermissionException;
import org.apache.directory.api.ldap.model.ldif.LdifUtils;
import org.apache.directory.api.ldap.model.message.AddRequest;
@@ -46,6 +48,7 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.message.controls.ManageDsaITImpl;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.util.DateUtils;
+import org.apache.directory.api.util.Strings;
import org.apache.directory.ldap.client.api.LdapNetworkConnection;
import org.apache.directory.ldap.client.api.future.AddFuture;
import org.apache.directory.server.annotations.CreateLdapServer;
@@ -78,7 +81,7 @@ public class ClientAddRequestTest extend
@Before
public void setup() throws Exception
{
- connection = (LdapNetworkConnection)LdapApiIntegrationUtils.getPooledAdminConnection( getLdapServer() );
+ connection = ( LdapNetworkConnection ) LdapApiIntegrationUtils.getPooledAdminConnection( getLdapServer() );
session = getLdapServer().getDirectoryService().getAdminSession();
}
@@ -259,7 +262,7 @@ public class ClientAddRequestTest extend
}
}
-
+
@Test
/**
* tests adding en entry with escaped chars in the RDN
@@ -278,13 +281,13 @@ public class ClientAddRequestTest extend
Entry loadedEntry = connection.lookup( dn.getName(), "*" );
assertNotNull( loadedEntry );
assertTrue( loadedEntry.containsAttribute( "cn" ) );
-
+
String cn = loadedEntry.get( "cn" ).get().getString();
-
+
assertEquals( "a+B", cn );
}
-
+
@Test
/**
* tests adding en entry with escaped chars in the RDN
@@ -304,13 +307,13 @@ public class ClientAddRequestTest extend
Entry loadedEntry = connection.lookup( dn.getName(), "*" );
assertNotNull( loadedEntry );
assertTrue( loadedEntry.containsAttribute( "cn" ) );
-
+
String cn = loadedEntry.get( "cn" ).get().getString();
-
+
assertEquals( "a+b", cn );
}
-
+
@Test
/**
* tests adding en entry with escaped chars in the RDN
@@ -330,26 +333,26 @@ public class ClientAddRequestTest extend
Entry loadedEntry = connection.lookup( dn.getName(), "*" );
assertNotNull( loadedEntry );
assertTrue( loadedEntry.containsAttribute( "cn" ) );
-
+
Attribute attribute = loadedEntry.get( "cn" );
Set<String> expected = new HashSet<String>();
expected.add( "a+B" );
expected.add( "c" );
int count = 0;
-
+
for ( Value<?> value : attribute )
{
String val = value.getString();
-
+
assertTrue( expected.contains( val ) );
count++;
-
+
}
-
+
assertEquals( 2, count );
}
-
-
+
+
/**
* the below test fails cause the API is failing to
* preserve the UP name of the attribute of RDN
@@ -369,11 +372,49 @@ public class ClientAddRequestTest extend
assertTrue( session.exists( dn ) );
- entry = connection.lookup(dn);
-
- String ldif = LdifUtils.convertToLdif(entry);
-
- assertTrue( ldif.contains(dn.getName()) );
+ entry = connection.lookup( dn );
+
+ String ldif = LdifUtils.convertToLdif( entry );
+
+ assertTrue( ldif.contains( dn.getName() ) );
+ }
+
+
+ @Test
+ public void testAddNullValueSchemaAware() throws LdapException, IOException
+ {
+ connection.setTimeOut( 0L );
+ connection.loadSchema();
+
+ // Use the client API
+ connection.bind( "uid=admin,ou=system", "secret" );
+
+ // Add a new entry with some null values
+ Entry entry = new DefaultEntry( getLdapServer().getDirectoryService().getSchemaManager(), "cn=test,ou=system",
+ "ObjectClass: top",
+ "ObjectClass: person",
+ "ObjectClass: person",
+ "ObjectClass: OrganizationalPerson",
+ "ObjectClass: inetOrgPerson",
+ "cn: test",
+ "sn: Test",
+ "userPassword:",
+ "mail:" );
+
+ connection.add( entry );
+
+ // Now fetch the entry
+ Entry found = connection.lookup( "cn=test,ou=system" );
+
+ assertNotNull( found );
+ assertNotNull( found.get( "userPassword" ) );
+ assertNotNull( found.get( "mail" ) );
+ byte[] userPassword = found.get( "userPassword" ).getBytes();
+ String mail = found.get( "mail" ).getString();
+
+ assertTrue( Strings.isEmpty( userPassword ) );
+ assertTrue( Strings.isEmpty( mail ) );
+
+ connection.close();
}
-
}
Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java?rev=1496649&r1=1496648&r2=1496649&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddIT.java Tue Jun 25 21:54:08 2013
@@ -31,6 +31,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@@ -51,6 +52,8 @@ import javax.naming.directory.SearchResu
import javax.naming.ldap.LdapContext;
import javax.naming.ldap.LdapName;
+import netscape.ldap.LDAPException;
+
import org.apache.directory.api.ldap.model.constants.AuthenticationLevel;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.csn.Csn;
@@ -1510,15 +1513,54 @@ public class AddIT extends AbstractLdapT
assertNotNull( certificate );
assertEquals( 1, certificate.size() );
assertTrue( certificate.contains( Strings.getBytesUtf8( "<Hello world !>" ) ) );
-
+
// Same check without the ";binary"
certificate = kateReloaded.get( "userCertificate" );
assertNotNull( certificate );
assertEquals( 1, certificate.size() );
assertTrue( certificate.contains( Strings.getBytesUtf8( "<Hello world !>" ) ) );
-
+
// Remove entry
con.delete( dn );
con.unBind();
}
+
+
+ @Test
+ public void testAddNullValue() throws LdapException, IOException
+ {
+ LdapConnection connection = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
+ connection.setTimeOut( 0L );
+
+ // Use the client API
+ connection.bind( "uid=admin,ou=system", "secret" );
+
+ // Add a new entry with some null values
+ Entry entry = new DefaultEntry( "cn=test,ou=system",
+ "ObjectClass: top",
+ "ObjectClass: person",
+ "ObjectClass: person",
+ "ObjectClass: OrganizationalPerson",
+ "ObjectClass: inetOrgPerson",
+ "cn: test",
+ "sn: Test",
+ "userPassword:",
+ "mail:" );
+
+ connection.add( entry );
+
+ // Now fetch the entry
+ Entry found = connection.lookup( "cn=test,ou=system" );
+
+ assertNotNull( found );
+ assertNotNull( found.get( "userPassword" ) );
+ assertNotNull( found.get( "mail" ) );
+ String userPassword = found.get( "userPassword" ).getString();
+ String mail = found.get( "mail" ).getString();
+
+ assertTrue( Strings.isEmpty( userPassword ) );
+ assertTrue( Strings.isEmpty( mail ) );
+
+ connection.close();
+ }
}