1 package com.atlassian.user.impl.ldap.configuration;
2
3 import com.atlassian.user.configuration.AbstractRepositoryProcessorTestCase;
4 import com.atlassian.user.configuration.RepositoryAccessor;
5 import com.atlassian.user.configuration.ConfigurationException;
6 import com.atlassian.user.configuration.xml.XMLConfigurationParser;
7 import com.atlassian.user.impl.ldap.LdapRepositoryAccessor;
8 import com.atlassian.user.impl.ldap.properties.LdapConnectionProperties;
9 import com.atlassian.user.repository.RepositoryIdentifier;
10
11 public class TestLDAPRepositoryProcessor extends AbstractRepositoryProcessorTestCase
12 {
13 public void setUp() throws Exception
14 {
15 super.setUp();
16
17 parser = new XMLConfigurationParser();
18 }
19
20 public void tearDown() throws Exception
21 {
22 super.tearDown();
23 }
24
25 public void testProcess() throws ConfigurationException
26 {
27 initializeConfiguration(ldap1XML);
28 RepositoryAccessor repoAccessor = delegationAccessor.getRepositoryAccessor("ldap1");
29 RepositoryIdentifier identifier = repoAccessor.getIdentifier();
30
31 assertEquals("ldap1", identifier.getKey());
32 assertEquals("name1", identifier.getName());
33 }
34
35 public void testEnablePoolingInXml() throws ConfigurationException
36 {
37 testPoolingVariableIsParsedAndSet(true);
38 }
39
40 public void testDisablePoolingInXml() throws ConfigurationException
41 {
42 testPoolingVariableIsParsedAndSet(false);
43 }
44
45 private void testPoolingVariableIsParsedAndSet(boolean poolingEnabled) throws ConfigurationException
46 {
47 String sampleXml = "<atlassian-user>\n" +
48 "<repositories>\n" +
49 "<ldap key=\"contextFactory\" name=\"LDAP Repository@localhost\">\n" +
50 "<poolingOn>" + poolingEnabled + "</poolingOn>\n" +
51 "</ldap>\n" +
52 "</repositories>\n" +
53 "</atlassian-user>";
54
55 initializeConfiguration(sampleXml);
56 LdapRepositoryAccessor repoAccessor = (LdapRepositoryAccessor) delegationAccessor.getRepositoryAccessor("contextFactory");
57 assertNotNull(repoAccessor);
58 LdapConnectionProperties connectionProperties = repoAccessor.getConnectionProperties();
59 assertEquals(poolingEnabled, connectionProperties.isPoolingOn());
60 }
61 }