1   package com.atlassian.user.configuration;
2   
3   import com.atlassian.user.configuration.xml.XMLConfigurationParser;
4   import com.atlassian.user.configuration.xml.XMLConfiguration;
5   
6   import java.util.List;
7   
8   import junit.framework.TestCase;
9   
10  /**
11   * Testing {@link XMLConfigurationParser}
12   */
13  public class TestDelegatingRepositoryXmlConfiguration extends TestCase
14  {
15      protected XMLConfigurationParser parser;
16      
17      private String delegation1 = "<atlassian-user>\n" +
18              "    <delegation>\n" +
19              "        <key>mem2</key>\n" +
20              "        <key>mem1</key>\n" +
21              "    </delegation>\n" +
22              "\n" +
23              "    <repositories>\n" +
24              "        <memory key=\"mem1\" name=\"memory\" />\n" +
25              "        <memory key=\"mem2\" name=\"name1\" description=\"test description\" />\n" +
26              "    </repositories>\n" +
27              "</atlassian-user>";
28  
29      private String delegation2 = "<atlassian-user>\n" +
30              "    <repositories>\n" +
31              "        <memory key=\"mem2\" name=\"name1\" description=\"test description\" />\n" +
32              "        <memory key=\"mem1\" name=\"memory\" />\n" +
33              "    </repositories>\n" +
34              "</atlassian-user>";
35  
36  
37      public void setUp() throws Exception
38      {
39          super.setUp();
40          parser = new XMLConfigurationParser();
41      }
42  
43      public void testErrorLoadingDefaults()
44      {
45          try
46          {
47              new XMLConfigurationParser("file-not-found.xml");
48              fail("Expected ConfigurationException");
49          }
50          catch (ConfigurationException e)
51          {
52              // expected
53          }
54      }
55  
56      public void testAccurateDelegationOrder() throws ConfigurationException
57      {
58          XMLConfiguration config = XMLConfiguration.configureFromXMLString(delegation1);
59          List accessors = config.getDelegationAccessor().getRepositoryAccessors();
60  
61          RepositoryAccessor accessor1 = (RepositoryAccessor) accessors.get(0);
62          RepositoryAccessor accessor2 = (RepositoryAccessor) accessors.get(1);
63          assertEquals("mem2", accessor1.getIdentifier().getKey());
64          assertEquals("mem1", accessor2.getIdentifier().getKey());
65      }
66  
67      public void testDefaultDelegationOrder() throws ConfigurationException
68      {
69          XMLConfiguration config = XMLConfiguration.configureFromXMLString(delegation2);
70          List accessors = config.getDelegationAccessor().getRepositoryAccessors();
71  
72          RepositoryAccessor accessor1 = (RepositoryAccessor) accessors.get(0);
73          RepositoryAccessor accessor2 = (RepositoryAccessor) accessors.get(1);
74          assertEquals("mem2", accessor1.getIdentifier().getKey());
75          assertEquals("mem1", accessor2.getIdentifier().getKey());
76      }
77  }