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 2005/09/27 09:02:03 UTC

svn commit: r291840 - /directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java

Author: elecharny
Date: Tue Sep 27 00:01:59 2005
New Revision: 291840

URL: http://svn.apache.org/viewcvs?rev=291840&view=rev
Log:
Updated the content of this class, copying the content from the same class in utils package

Modified:
    directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java

Modified: directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java?rev=291840&r1=291839&r2=291840&view=diff
==============================================================================
--- directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java (original)
+++ directory/shared/ldap/branches/shared-ldap-NameComponent/apache2-provider/src/test/org/apache/asn1new/ldap/codec/primitives/LdapRDNTest.java Tue Sep 27 00:01:59 2005
@@ -23,6 +23,7 @@
 
 import org.apache.asn1.codec.DecoderException;
 import org.apache.asn1new.ldap.codec.primitives.LdapDN;
+import org.apache.asn1new.ldap.codec.primitives.LdapRDN;
 
 /**
  * Test the class LdapRDN
@@ -43,65 +44,134 @@
     /**
      * Test a null RDN
      */
-    public void testLdapRDNNull()
+    public void testLdapRDNNull() throws InvalidNameException
     {
-        try
-        {
-            new LdapRDN( null, null );
-            // Should never go further.
-        }
-        catch ( InvalidNameException ine )
-        {
-            Assert.assertTrue( true );
-        }
+        Assert.assertEquals( null, new LdapRDN().toString() );
+    }
+
+    /**
+     * test an empty RDN
+     */
+    public void testLdapRDNEmpty() throws InvalidNameException
+    {
+        Assert.assertEquals( null, new LdapRDN( "" ).toString() );
     }
 
     /**
      * test a simple RDN : a = b
      */
-    public void testLdapRDNSimple()  throws InvalidNameException
+    public void testLdapRDNSimple() throws InvalidNameException
+    {
+        Assert.assertEquals( "a=b", new LdapRDN( "a = b" ).toString() );
+    }
+
+    /**
+     * test a composite RDN : a = b, d = e
+     */
+    public void testLdapRDNComposite() throws InvalidNameException
+    {
+        Assert.assertEquals( "a=b+c=d", new LdapRDN( "a = b + c = d" ).toString() );
+    }
+
+    /**
+     * test a composite RDN with or without spaces: a=b, a =b, a= b, a = b, a  =  b
+     */
+    public void testLdapRDNCompositeWithSpace() throws InvalidNameException
     {
-        Assert.assertEquals( "a=b", new LdapRDN( "a ", " b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a=b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a=b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a =b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a= b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a=b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a =b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a= b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a=b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a = b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a =b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a= b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a = b" ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a =b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a= b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( "a = b " ).toString() );
+        Assert.assertEquals( "a=b", new LdapRDN( " a = b " ).toString() );
     }
 
     /**
-     * test a composite RDN : a = b + c = d
+     * test a simple RDN with differents separators : a = b + c = d
      */
-    public void testLdapRDNComposite()  throws InvalidNameException
+    public void testLdapRDNSimpleMultivaluedAttribute() throws InvalidNameException
     {
-        LdapRDN rdn = new LdapRDN();
-        rdn.addNameComponent( "a ", " b" );
-        rdn.addNameComponent( " c ", " d " );
-        Assert.assertEquals( "a=b+c=d", rdn.toString() );
+        String result = new LdapRDN( "a = b + c = d" ).toString(); 
+        Assert.assertEquals( "a=b+c=d", result );
     }
 
     /**
-     * test a composite RDN : A = b + c = d with uppercase
+     * test a composite RDN with differents separators : a=b+c=d, e=f + g=h + i=j
      */
-    public void testLdapRDNCompositeUpperCase() throws InvalidNameException
+    public void testLdapRDNCompositeMultivaluedAttribute() throws InvalidNameException
     {
-        LdapRDN rdn = new LdapRDN();
-        rdn.addNameComponent( "A ", " b" );
-        rdn.addNameComponent( " c ", " d " );
-        Assert.assertEquals( "a=b+c=d", rdn.toString() );
+        LdapRDN rdn = new LdapRDN( "a =b+c=d + e=f + g  =h + i =j " );
+        
+        // NameComponent are not ordered
+        Assert.assertEquals( "b", rdn.getValue("a") );
+        Assert.assertEquals( "d", rdn.getValue("c") );
+        Assert.assertEquals( "f", rdn.getValue("e") );
+        Assert.assertEquals( "h", rdn.getValue("g") );
+        Assert.assertEquals( "j", rdn.getValue("i") );
     }
 
     /**
-     * test a simple DN with pair char attribute value : a = \,\=\+\<\>\#\;\\\"\A0\00"
+     * test a simple RDN with an oid prefix (uppercase) : OID.12.34.56 = azerty
+     */
+    public void testLdapRDNOidUpper() throws InvalidNameException
+    {
+        Assert.assertEquals( "oid.12.34.56=azerty",
+                new LdapRDN( "OID.12.34.56 =  azerty" ).toString() );
+    }
+
+    /**
+     * test a simple RDN with an oid prefix (lowercase) : oid.12.34.56 = azerty
+     */
+    public void testLdapRDNOidLower() throws InvalidNameException
+    {
+        Assert.assertEquals( "oid.12.34.56=azerty",
+                new LdapRDN( "oid.12.34.56 = azerty" ).toString() );
+    }
+
+    /**
+     * test a simple RDN with an oid attribut wiithout oid prefix : 12.34.56 = azerty
+     */
+    public void testLdapRDNOidWithoutPrefix() throws InvalidNameException
+    {
+        Assert.assertEquals( "12.34.56=azerty",
+                new LdapRDN( "12.34.56 = azerty" ).toString() );
+    }
+
+    /**
+     * test a composite RDN with an oid attribut wiithout oid prefix : 12.34.56 = azerty; 7.8 = test
+     */
+    public void testLdapRDNCompositeOidWithoutPrefix() throws InvalidNameException
+    {
+        String result = new LdapRDN( "12.34.56 = azerty + 7.8 = test" ).toString(); 
+        Assert.assertEquals( "12.34.56=azerty+7.8=test", result );
+    }
+
+    /**
+     * test a simple RDN with pair char attribute value : a = \,\=\+\<\>\#\;\\\"\A0\00"
      */
     public void testLdapRDNPairCharAttributeValue() throws InvalidNameException
     {
         Assert.assertEquals( "a=\\,\\=\\+\\<\\>\\#\\;\\\\\\\"\\A0\\00",
-                new LdapRDN( "a ", "   \\,\\=\\+\\<\\>\\#\\;\\\\\\\"\\A0\\00   " ).toString() );
+                new LdapRDN( "a = \\,\\=\\+\\<\\>\\#\\;\\\\\\\"\\A0\\00" ).toString() );
     }
 
     /**
      * test a simple RDN with hexString attribute value : a = #0010A0AAFF
      */
-    public void testLdapRDNHexStringAttributeValue()  throws InvalidNameException
+    public void testLdapRDNHexStringAttributeValue() throws InvalidNameException
     {
         Assert.assertEquals( "a=#0010A0AAFF",
-                new LdapRDN( "a", " #0010A0AAFF  " ).toString() );
+                new LdapRDN( "a = #0010A0AAFF" ).toString() );
     }
 
     /**
@@ -110,6 +180,42 @@
     public void testLdapRDNQuotedAttributeValue() throws InvalidNameException
     {
         Assert.assertEquals( "a=quoted \\\"value",
-                new LdapRDN( "a ", " quoted \\\"value  " ).toString() );
+                new LdapRDN( "a = quoted \\\"value" ).toString() );
+    }
+    
+    /**
+     * Test the clone method for a RDN.
+     */
+    public void testRDNCloningOneNameComponent()  throws InvalidNameException
+    {
+        LdapRDN rdn = new LdapRDN( "a", "b" );
+        
+        LdapRDN rdnClone = (LdapRDN)rdn.clone();
+        
+        rdn.removeNameComponent( "a" );
+        
+        LdapRDN.parseNameComponent( "c=d", rdn );
+        
+        Assert.assertEquals( "b" , rdnClone.getValue( "a" ) );
+    }
+
+    /**
+     * Test the clone method for a RDN.
+     */
+    public void testRDNCloningTwoNameComponent()  throws InvalidNameException
+    {
+        LdapRDN rdn = new LdapRDN( "a", "b" );
+        rdn.addNameComponent( "aa", "bb" );
+        
+        LdapRDN rdnClone = (LdapRDN)rdn.clone();
+        
+        rdn.removeNameComponent( "aa" );
+        rdn.clear();
+        LdapRDN.parseNameComponent( "c=d", rdn );
+        
+        Assert.assertEquals( "b" , rdnClone.getValue( "a" ) );
+        Assert.assertEquals( "bb" , rdnClone.getValue( "aa" ) );
+        Assert.assertEquals( null , rdnClone.getValue( "c" ) );
     }
 }
+