1 package org.springframework.richclient.settings.xml;
2
3 import org.springframework.richclient.settings.Settings;
4 import org.springframework.richclient.settings.SettingsException;
5 import org.w3c.dom.Document;
6
7 import junit.framework.TestCase;
8
9 public class XmlSettingsFactoryTests extends TestCase {
10 public void testGetAndSetLocation() {
11 XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
12
13 assertEquals("default settings location is \"settings\"", "settings", settingsFactory.getLocation());
14
15 settingsFactory.setLocation("other-settings");
16 assertEquals("other-settings", settingsFactory.getLocation());
17
18 settingsFactory.setLocation(null);
19 assertEquals("location not reset to default", "settings", settingsFactory.getLocation());
20 }
21
22 public void testGetAndSetReaderWriter() {
23 XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
24 settingsFactory.setLocation("other-settings");
25
26 XmlSettingsReaderWriter readerWriter = settingsFactory.getReaderWriter();
27 assertTrue("default must be FileSystemXmlSettingsReaderWriter",
28 readerWriter instanceof FileSystemXmlSettingsReaderWriter);
29
30 FileSystemXmlSettingsReaderWriter fileSystemXmlSettingsReaderWriter = (FileSystemXmlSettingsReaderWriter) readerWriter;
31 assertEquals("other-settings", fileSystemXmlSettingsReaderWriter.getLocation());
32
33 StringXmlSettingsReaderWriter newReaderWriter = new StringXmlSettingsReaderWriter(null);
34 settingsFactory.setReaderWriter(newReaderWriter);
35 assertEquals(newReaderWriter, settingsFactory.getReaderWriter());
36
37 settingsFactory.setReaderWriter(null);
38 assertTrue("not reset to default",
39 settingsFactory.getReaderWriter() instanceof FileSystemXmlSettingsReaderWriter);
40 }
41
42 public void testCreate() throws SettingsException {
43 XmlSettingsFactory settingsFactory = new XmlSettingsFactory();
44 settingsFactory.setReaderWriter(new StringXmlSettingsReaderWriter(null));
45
46 Settings settings = settingsFactory.createSettings("user");
47 assertNotNull(settings);
48 assertTrue(settings instanceof RootXmlSettings);
49 assertEquals("user", settings.getName());
50
51 RootXmlSettings rootXmlSettings = (RootXmlSettings) settings;
52 Document document = rootXmlSettings.getDocument();
53 assertNotNull(document);
54 }
55 }