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  		// test location
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  }