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 }