1   /*
2    * Copyright 2002-2004 the original author or authors.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5    * use this file except in compliance with the License. You may obtain a copy of
6    * the License at
7    * 
8    * http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13   * License for the specific language governing permissions and limitations under
14   * the License.
15   */
16  package org.springframework.richclient.settings.j2seprefs;
17  
18  import junit.framework.TestCase;
19  
20  /**
21   * @author Peter De Bruycker
22   */
23  public class PreferencesSettingsFactoryTests extends TestCase {
24  
25  	public void testSetPreferencesFactory() {
26  		PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
27  
28  		assertNull("PreferencesFactory must be initially null", settingsFactory.getPreferencesFactory());
29  
30  		TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
31  		settingsFactory.setPreferencesFactory(prefsFactory);
32  		assertEquals(prefsFactory, settingsFactory.getPreferencesFactory());
33  	}
34  
35  	public void testCreate() {
36  		PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
37  		TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
38  		settingsFactory.setPreferencesFactory(prefsFactory);
39  
40  		try {
41  			// id has not yet been set
42  			settingsFactory.createSettings("test-settings");
43  			fail("Should throw IllegalStateException");
44  		} catch (IllegalStateException e) {
45  			// test passes
46  		}
47  
48  		settingsFactory.setId("test-id");
49  		PreferencesSettings settings = (PreferencesSettings) settingsFactory.createSettings("internal");
50  		assertNotNull(settings);
51  
52  		TransientPreferences prefs = (TransientPreferences) settings.getPreferences();
53  		assertNotNull(prefs);
54  		assertEquals("internal", prefs.name());
55  		assertEquals("/test-id/internal", prefs.absolutePath());
56  	}
57  
58  	public void testCreateWithPath() {
59  		PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
60  		TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
61  		settingsFactory.setPreferencesFactory(prefsFactory);
62  
63  		settingsFactory.setId("application.1.0");
64  		PreferencesSettings settings = (PreferencesSettings) settingsFactory.createSettings("user");
65  		TransientPreferences prefs = (TransientPreferences) settings.getPreferences();
66  		assertEquals("/application/1/0/user", prefs.absolutePath());
67  	}
68  
69  	public void testSetId() {
70  		PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
71  		settingsFactory.setId("id");
72  		assertEquals("id", settingsFactory.getId());
73  	}
74  
75  }