You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2006/11/18 09:33:51 UTC
svn commit: r476470 -
/directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java
Author: trustin
Date: Sat Nov 18 00:33:50 2006
New Revision: 476470
URL: http://svn.apache.org/viewvc?view=rev&rev=476470
Log:
Added a test for the cast that two clients are adding the same entry. It looks like it's broken for now, so I disabled it.
Modified:
directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java
Modified: directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java?view=diff&rev=476470&r1=476469&r2=476470
==============================================================================
--- directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java (original)
+++ directory/trunks/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceIntegrationTest.java Sat Nov 18 00:33:50 2006
@@ -30,6 +30,7 @@
import javax.naming.Context;
import javax.naming.InitialContext;
+import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttributes;
import javax.naming.ldap.InitialLdapContext;
@@ -77,20 +78,50 @@
public void testOneWayBind() throws Exception
{
LdapContext ctxA = getReplicaContext( "A" );
+ LdapContext ctxB = getReplicaContext( "B" );
+ LdapContext ctxC = getReplicaContext( "C" );
Attributes entry = new BasicAttributes( true );
entry.put( "cn", "test" );
entry.put( "objectClass", "top" );
ctxA.bind( "cn=test,ou=system", entry );
- replicate( "A" );
+ Thread.sleep( 5000 );
- LdapContext ctxB = getReplicaContext( "B" );
Assert.assertNotNull( ctxB.lookup( "cn=test,ou=system" ) );
-
- LdapContext ctxC = getReplicaContext( "C" );
Assert.assertNotNull( ctxC.lookup( "cn=test,ou=system" ) );
}
+
+ public void _testTwoWayBind() throws Exception
+ {
+ LdapContext ctxA = getReplicaContext( "A" );
+ LdapContext ctxB = getReplicaContext( "B" );
+ LdapContext ctxC = getReplicaContext( "C" );
+
+ Attributes entryA = new BasicAttributes( true );
+ entryA.put( "cn", "test" );
+ entryA.put( "ou", "A" );
+ entryA.put( "objectClass", "top" );
+ ctxA.bind( "cn=test,ou=system", entryA );
+
+ Attributes entryB = new BasicAttributes( true );
+ entryB.put( "cn", "test" );
+ entryB.put( "ou", "B" );
+ entryB.put( "objectClass", "top" );
+ ctxB.bind( "cn=test,ou=system", entryB );
+
+ Thread.sleep( 5000 );
+
+ Assert.assertEquals( "B", getAttributeValue( ctxA, "cn=test,ou=system", "ou" ) );
+ Assert.assertEquals( "B", getAttributeValue( ctxB, "cn=test,ou=system", "ou" ) );
+ Assert.assertEquals( "B", getAttributeValue( ctxC, "cn=test,ou=system", "ou" ) );
+ }
+
+ private String getAttributeValue( LdapContext ctx, String name, String attrName ) throws Exception
+ {
+ Attribute attr = ( ( Attributes ) ctx.lookup( name ) ).get( attrName );
+ return ( String ) attr.get();
+ }
private void createReplicas( String[] names ) throws Exception
{
@@ -130,7 +161,7 @@
ReplicationConfiguration replicationCfg = new ReplicationConfiguration();
replicationCfg.setReplicaId( replica.getId() );
// Disable automatic replication to prevent unexpected behavior
- replicationCfg.setReplicationInterval(0);
+ replicationCfg.setReplicationInterval(1);
replicationCfg.setServerPort( replica.getAddress().getPort() );
for( int j = 0; j < replicas.length; j++ )
{
@@ -184,10 +215,10 @@
private void replicate( String name ) throws Exception
{
- Thread.sleep( 2000 );
+ Thread.sleep( 2500 );
ReplicationService service = ( ReplicationService ) replicationServices.get( name );
service.replicate();
- Thread.sleep( 2000 );
+ Thread.sleep( 2500 );
}
private void destroyAllReplicas() throws Exception