001    package org.springframework.richclient.settings.xml;
002    
003    import org.springframework.richclient.settings.Settings;
004    import org.springframework.richclient.settings.SettingsException;
005    import org.w3c.dom.Document;
006    
007    import junit.framework.TestCase;
008    
009    public class XmlSettingsFactoryTests extends TestCase {
010            public void testGetAndSetLocation() {
011                    XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
012    
013                    assertEquals("default settings location is \"settings\"", "settings", settingsFactory.getLocation());
014    
015                    settingsFactory.setLocation("other-settings");
016                    assertEquals("other-settings", settingsFactory.getLocation());
017    
018                    settingsFactory.setLocation(null);
019                    assertEquals("location not reset to default", "settings", settingsFactory.getLocation());
020            }
021    
022            public void testGetAndSetReaderWriter() {
023                    XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
024                    settingsFactory.setLocation("other-settings");
025    
026                    XmlSettingsReaderWriter readerWriter = settingsFactory.getReaderWriter();
027                    assertTrue("default must be FileSystemXmlSettingsReaderWriter",
028                                    readerWriter instanceof FileSystemXmlSettingsReaderWriter);
029                    // test location
030                    FileSystemXmlSettingsReaderWriter fileSystemXmlSettingsReaderWriter = (FileSystemXmlSettingsReaderWriter) readerWriter;
031                    assertEquals("other-settings", fileSystemXmlSettingsReaderWriter.getLocation());
032    
033                    StringXmlSettingsReaderWriter newReaderWriter = new StringXmlSettingsReaderWriter(null);
034                    settingsFactory.setReaderWriter(newReaderWriter);
035                    assertEquals(newReaderWriter, settingsFactory.getReaderWriter());
036    
037                    settingsFactory.setReaderWriter(null);
038                    assertTrue("not reset to default",
039                                    settingsFactory.getReaderWriter() instanceof FileSystemXmlSettingsReaderWriter);
040            }
041    
042            public void testCreate() throws SettingsException {
043                    XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
044                    settingsFactory.setReaderWriter(new StringXmlSettingsReaderWriter(null));
045    
046                    Settings settings = settingsFactory.createSettings("user");
047                    assertNotNull(settings);
048                    assertTrue(settings instanceof RootXmlSettings);
049                    assertEquals("user", settings.getName());
050    
051                    RootXmlSettings rootXmlSettings = (RootXmlSettings) settings;
052                    Document document = rootXmlSettings.getDocument();
053                    assertNotNull(document);
054            }
055    }