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  }