1 17 package org.apache.ldap.server.jndi; 18 19 20 import org.apache.ldap.server.AbstractCoreTest; 21 22 import javax.naming.Context ; 23 import javax.naming.InitialContext ; 24 import javax.naming.NamingException ; 25 import javax.naming.directory.*; 26 import java.util.Hashtable ; 27 28 29 35 public class ServerContextFactoryTest extends AbstractCoreTest 36 { 37 public ServerContextFactoryTest() 38 { 39 BasicAttributes attrs = new BasicAttributes( true ); 40 41 BasicAttribute attr = new BasicAttribute( "objectClass" ); 42 43 attr.add( "top" ); 44 45 attr.add( "organizationalUnit" ); 46 47 attr.add( "extensibleObject" ); 48 49 attrs.put( attr ); 50 51 attr = new BasicAttribute( "ou" ); 52 53 attr.add( "testing" ); 54 55 attrs.put( attr ); 56 57 extras.put( EnvKeys.PARTITIONS, "testing example MixedCase" ); 58 59 extras.put( EnvKeys.SUFFIX + "testing", "ou=testing" ); 60 61 extras.put( EnvKeys.INDICES + "testing", "ou objectClass" ); 62 63 extras.put( EnvKeys.ATTRIBUTES + "testing", attrs ); 64 65 attrs = new BasicAttributes( true ); 66 67 attr = new BasicAttribute( "objectClass" ); 68 69 attr.add( "top" ); 70 71 attr.add( "domain" ); 72 73 attr.add( "extensibleObject" ); 74 75 attrs.put( attr ); 76 77 attr = new BasicAttribute( "dc" ); 78 79 attr.add( "example" ); 80 81 attrs.put( attr ); 82 83 extras.put( EnvKeys.SUFFIX + "example", "dc=example" ); 84 85 extras.put( EnvKeys.INDICES + "example", "ou dc objectClass" ); 86 87 extras.put( EnvKeys.ATTRIBUTES + "example", attrs ); 88 89 attrs = new BasicAttributes( true ); 90 91 attr = new BasicAttribute( "objectClass" ); 92 93 attr.add( "top" ); 94 95 attr.add( "domain" ); 96 97 attr.add( "extensibleObject" ); 98 99 attrs.put( attr ); 100 101 attr = new BasicAttribute( "dc" ); 102 103 attr.add( "MixedCase" ); 104 105 attrs.put( attr ); 106 107 extras.put( EnvKeys.SUFFIX + "MixedCase", "dc=MixedCase" ); 108 109 extras.put( EnvKeys.INDICES + "MixedCase", "dc objectClass" ); 110 111 extras.put( EnvKeys.ATTRIBUTES + "MixedCase", attrs ); 112 } 113 114 115 120 public void testSystemContext() throws NamingException 121 { 122 assertNotNull( sysRoot ); 123 124 Attributes attributes = sysRoot.getAttributes( "" ); 125 126 assertNotNull( attributes ); 127 128 assertEquals( "system", attributes.get( "ou" ).get() ); 129 130 Attribute attribute = attributes.get( "objectClass" ); 131 132 assertNotNull( attribute ); 133 134 assertTrue( attribute.contains( "top" ) ); 135 136 assertTrue( attribute.contains( "organizationalUnit" ) ); 137 } 138 139 140 145 public void testSetupTeardown() throws NamingException 146 { 147 assertNotNull( sysRoot ); 148 149 Attributes attributes = sysRoot.getAttributes( "" ); 150 151 assertNotNull( attributes ); 152 153 assertEquals( "system", attributes.get( "ou" ).get() ); 154 155 Attribute attribute = attributes.get( "objectClass" ); 156 157 assertNotNull( attribute ); 158 159 assertTrue( attribute.contains( "top" ) ); 160 161 assertTrue( attribute.contains( "organizationalUnit" ) ); 162 } 163 164 165 public void testAppPartitionExample() throws NamingException 166 { 167 Hashtable env = new Hashtable (); 168 169 env.put( Context.PROVIDER_URL, "dc=example" ); 170 171 env.put( Context.SECURITY_PRINCIPAL, "uid=admin,ou=system" ); 172 173 env.put( Context.SECURITY_CREDENTIALS, "secret" ); 174 175 env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.ServerContextFactory" ); 176 177 InitialContext initialContext = new InitialContext ( env ); 178 179 DirContext appRoot = ( DirContext ) initialContext.lookup( "" ); 180 181 assertNotNull( appRoot ); 182 183 Attributes attributes = appRoot.getAttributes( "" ); 184 185 assertNotNull( attributes ); 186 187 assertEquals( "example", attributes.get( "dc" ).get() ); 188 189 Attribute attribute = attributes.get( "objectClass" ); 190 191 assertNotNull( attribute ); 192 193 assertTrue( attribute.contains( "top" ) ); 194 195 assertTrue( attribute.contains( "domain" ) ); 196 } 197 198 199 public void testAppPartitionTesting() throws NamingException 200 { 201 Hashtable env = new Hashtable (); 202 203 env.put( Context.PROVIDER_URL, "ou=testing" ); 204 205 env.put( Context.SECURITY_PRINCIPAL, "uid=admin,ou=system" ); 206 207 env.put( Context.SECURITY_CREDENTIALS, "secret" ); 208 209 env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.ServerContextFactory" ); 210 211 InitialContext initialContext = new InitialContext ( env ); 212 213 DirContext appRoot = ( DirContext ) initialContext.lookup( "" ); 214 215 assertNotNull( appRoot ); 216 217 Attributes attributes = appRoot.getAttributes( "" ); 218 219 assertNotNull( attributes ); 220 221 assertEquals( "testing", attributes.get( "ou" ).get() ); 222 223 Attribute attribute = attributes.get( "objectClass" ); 224 225 assertNotNull( attribute ); 226 227 assertTrue( attribute.contains( "top" ) ); 228 229 assertTrue( attribute.contains( "organizationalUnit" ) ); 230 } 231 232 233 public void testAppPartitionMixedCase() throws NamingException 234 { 235 Hashtable env = new Hashtable (); 236 237 env.put( Context.PROVIDER_URL, "dc=MixedCase" ); 238 239 env.put( Context.SECURITY_PRINCIPAL, "uid=admin,ou=system" ); 240 241 env.put( Context.SECURITY_CREDENTIALS, "secret" ); 242 243 env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.ServerContextFactory" ); 244 245 InitialContext initialContext = new InitialContext ( env ); 246 247 DirContext appRoot = ( DirContext ) initialContext.lookup( "" ); 248 249 assertNotNull( appRoot ); 250 251 Attributes attributes = appRoot.getAttributes( "" ); 252 253 assertNotNull( attributes ); 254 255 assertEquals( "MixedCase", attributes.get( "dc" ).get() ); 256 257 Attribute attribute = attributes.get( "objectClass" ); 258 259 assertNotNull( attribute ); 260 261 assertTrue( attribute.contains( "top" ) ); 262 263 assertTrue( attribute.contains( "domain" ) ); 264 } 265 } 266 | Popular Tags |