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/23 14:08:58 UTC
svn commit: r499013 - in /directory/shared/trunk/ldap/src:
main/java/org/apache/directory/shared/ldap/message/
test/java/org/apache/directory/shared/ldap/message/
Author: elecharny
Date: Tue Jan 23 05:08:57 2007
New Revision: 499013
URL: http://svn.apache.org/viewvc?view=rev&rev=499013
Log:
Fixed tests and clone/copy implementation
Modified:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributeImpl.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributesImpl.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/message/AttributesImplTest.java
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributeImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributeImpl.java?view=diff&rev=499013&r1=499012&r2=499013
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributeImpl.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributeImpl.java Tue Jan 23 05:08:57 2007
@@ -31,6 +31,7 @@
import javax.naming.NamingException;
import javax.naming.OperationNotSupportedException;
import javax.naming.directory.Attribute;
+import javax.naming.directory.BasicAttribute;
import javax.naming.directory.DirContext;
import org.apache.directory.shared.ldap.util.AttributeUtils;
@@ -138,7 +139,7 @@
size = clone.size;
value = clone.value;
}
- else if ( attribute instanceof AttributeImpl )
+ else if ( attribute instanceof BasicAttribute )
{
upId = attribute.getID();
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributesImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributesImpl.java?view=diff&rev=499013&r1=499012&r2=499013
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributesImpl.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/message/AttributesImpl.java Tue Jan 23 05:08:57 2007
@@ -243,7 +243,8 @@
ignoreCase = attributes.isCaseIgnored();
NamingEnumeration attrs = attributes.getAll();
-
+ keyMap = new HashMap<String, Holder>();
+
while ( attrs.hasMoreElements() )
{
Attribute attribute = new AttributeImpl( (Attribute)attrs.nextElement() );
Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/message/AttributesImplTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/message/AttributesImplTest.java?view=diff&rev=499013&r1=499012&r2=499013
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/message/AttributesImplTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/message/AttributesImplTest.java Tue Jan 23 05:08:57 2007
@@ -20,7 +20,10 @@
package org.apache.directory.shared.ldap.message;
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttributes;
import junit.framework.TestCase;
@@ -156,15 +159,95 @@
AttributesImpl attrs0 = new AttributesImpl();
attrs0.put( "attr0", "value0" );
attrs0.put( "attr1", "value1" );
- attrs0.put( "attr2", "value2" );
- attrs0.put( "attr2", "value3" );
+
+ Attribute attr0 = new AttributeImpl( "attr2" );
+ attr0.add( "value2" );
+ attr0.add( "value3" );
+ attrs0.put( attr0 );
Attributes attrs1 = new AttributesImpl( true );
attrs1.put( "attr0", "value0" );
attrs1.put( "attr1", "value1" );
- attrs1.put( "attr2", "value2" );
- attrs1.put( "attr2", "value3" );
+
+ Attribute attr1 = new AttributeImpl( "attr2" );
+ attr1.add( "value2" );
+ attr1.add( "value3" );
+ attrs1.put( attr1 );
assertTrue( "both implementations should produce the same outcome", attrs0.equals( attrs1 ) );
+ }
+
+ public void testCloneAttributes() throws NamingException
+ {
+ AttributesImpl attrs = new AttributesImpl();
+ attrs.put( "attr0", "value0" );
+ attrs.put( "attr1", "value1" );
+
+ Attribute attr = new AttributeImpl( "attr2" );
+ attr.add( "value2" );
+ attr.add( "value3" );
+ attrs.put( attr );
+
+ AttributesImpl clone = (AttributesImpl)attrs.clone();
+
+ // Both attributes should be equals
+ assertEquals( attrs, clone );
+ assertEquals( 3, clone.size() );
+
+ Attribute attr0 = clone.get( "attr0" );
+ assertEquals( 1, attr0.size() );
+ assertEquals( "value0", attr0.get() );
+
+ Attribute attr1 = clone.get( "attr1" );
+ assertEquals( 1, attr1.size() );
+ assertEquals( "value1", attr1.get() );
+
+ Attribute attr2 = clone.get( "attr2" );
+ assertEquals( 2, attr2.size() );
+ assertTrue( attr2.contains( "value2" ) );
+ assertTrue( attr2.contains( "value3" ) );
+
+ // Remove an element
+ attrs.remove( "attr1" );
+ assertNotSame( attrs, clone );
+ assertEquals( 2, attrs.size() );
+ assertEquals( 3, clone.size() );
+ }
+
+ public void testCopyBasicAttributes() throws NamingException
+ {
+ BasicAttributes attrs = new BasicAttributes();
+ attrs.put( "attr0", "value0" );
+ attrs.put( "attr1", "value1" );
+
+ Attribute attr = new AttributeImpl( "attr2" );
+ attr.add( "value2" );
+ attr.add( "value3" );
+ attrs.put( attr );
+
+ AttributesImpl copy = new AttributesImpl( attrs );
+
+ // Both attributes should be internally equals
+ assertNotSame( copy, attrs );
+ assertEquals( 3, copy.size() );
+
+ Attribute attr0 = copy.get( "attr0" );
+ assertEquals( 1, attr0.size() );
+ assertEquals( "value0", attr0.get() );
+
+ Attribute attr1 = copy.get( "attr1" );
+ assertEquals( 1, attr1.size() );
+ assertEquals( "value1", attr1.get() );
+
+ Attribute attr2 = copy.get( "attr2" );
+ assertEquals( 2, attr2.size() );
+ assertTrue( attr2.contains( "value2" ) );
+ assertTrue( attr2.contains( "value3" ) );
+
+ // Remove an element
+ attrs.remove( "attr1" );
+ assertNotSame( copy, attrs );
+ assertEquals( 2, attrs.size() );
+ assertEquals( 3, copy.size() );
}
}