Author: akarasulu Date: Thu Dec 16 11:12:35 2004 New Revision: 122567 URL: http://svn.apache.org/viewcvs?view=rev&rev=122567 Log: Changes ...
o adding test case for java serialized objects which closes this JIRA issue here: http://nagoya.apache.org/jira/browse/DIREVE-118 o while writing this test I discovered and fixed a bug in the operational attribute service which was returning op attrs on getAttributes() operations when no attribute id array was given or was null Added: incubator/directory/eve/trunk/dib/src/test/org/apache/eve/jndi/RFC2713Tests.java Modified: incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java Modified: incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java?view=diff&rev=122567&p1=incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java&r1=122566&p2=incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java&r2=122567 ============================================================================== --- incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java (original) +++ incubator/directory/eve/trunk/dib/src/java/org/apache/eve/jndi/ibs/OperationalAttributeService.java Thu Dec 16 11:12:35 2004 @@ -70,10 +70,18 @@ } public void filter( LdapContext ctx, Name dn, Attributes entry, String[] ids ) + throws NamingException { - // do nothing since this explicity specifies which attributes - // to include - backends will automatically populate with right - // set of attributes + // still need to protect against returning op attrs when ids is null + if ( ids == null ) + { + OperationalAttributeService.this.filter( entry ); + return; + } + + // do nothing past here since this explicity specifies which + // attributes to include - backends will automatically populate + // with right set of attributes using ids array } }; Added: incubator/directory/eve/trunk/dib/src/test/org/apache/eve/jndi/RFC2713Tests.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/dib/src/test/org/apache/eve/jndi/RFC2713Tests.java?view=auto&rev=122567 ============================================================================== --- (empty file) +++ incubator/directory/eve/trunk/dib/src/test/org/apache/eve/jndi/RFC2713Tests.java Thu Dec 16 11:12:35 2004 @@ -0,0 +1,68 @@ +/* + * Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.eve.jndi; + + +import java.util.ArrayList; +import javax.naming.directory.Attributes; +import javax.naming.directory.Attribute; + + +/** + * Tests to validate whatever functionality we have for complying with + * <a href="http://www.faqs.org/rfcs/rfc2713.html">RFC 2713</a>. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Apache Directory Project</a> + * @version $Rev$ + */ +public class RFC2713Tests extends AbstractJndiTest +{ + public void testSerialization() throws Exception + { + ArrayList colors = new ArrayList(); + colors.add( "red" ); + colors.add( "white" ); + colors.add( "blue" ); + sysRoot.bind( "cn=colors", colors ); + colors = null; + + Object obj = sysRoot.lookup( "cn=colors" ); + assertTrue( obj instanceof ArrayList ); + colors = ( ArrayList ) obj; + assertEquals( 3, colors.size() ); + assertTrue( colors.contains( "red" ) ); + assertTrue( colors.contains( "white" ) ); + assertTrue( colors.contains( "blue" ) ); + + Attributes attrs = sysRoot.getAttributes( "cn=colors" ); + Attribute attr = attrs.get( "objectClass" ); + assertNotNull( attr ); + assertEquals( 4, attr.size() ); + assertTrue( attr.contains( "top" ) ); + assertTrue( attr.contains( "javaObject" ) ); + assertTrue( attr.contains( "javaContainer" ) ); + assertTrue( attr.contains( "javaSerializedObject" ) ); + attr = attrs.get( "javaClassName" ); + assertNotNull( attr ); + assertEquals( 1, attr.size() ); + assertTrue( attr.contains( "java.util.ArrayList" ) ); + + attr = attrs.get( "javaSerializedData" ); + assertNotNull( attr ); + assertEquals( 1, attr.size() ); + } +}
