001    /*
002     * Copyright 2002-2004 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.richclient.settings.j2seprefs;
017    
018    import junit.framework.TestCase;
019    
020    /**
021     * @author Peter De Bruycker
022     */
023    public class PreferencesSettingsFactoryTests extends TestCase {
024    
025            public void testSetPreferencesFactory() {
026                    PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
027    
028                    assertNull("PreferencesFactory must be initially null", settingsFactory.getPreferencesFactory());
029    
030                    TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
031                    settingsFactory.setPreferencesFactory(prefsFactory);
032                    assertEquals(prefsFactory, settingsFactory.getPreferencesFactory());
033            }
034    
035            public void testCreate() {
036                    PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
037                    TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
038                    settingsFactory.setPreferencesFactory(prefsFactory);
039    
040                    try {
041                            // id has not yet been set
042                            settingsFactory.createSettings("test-settings");
043                            fail("Should throw IllegalStateException");
044                    } catch (IllegalStateException e) {
045                            // test passes
046                    }
047    
048                    settingsFactory.setId("test-id");
049                    PreferencesSettings settings = (PreferencesSettings) settingsFactory.createSettings("internal");
050                    assertNotNull(settings);
051    
052                    TransientPreferences prefs = (TransientPreferences) settings.getPreferences();
053                    assertNotNull(prefs);
054                    assertEquals("internal", prefs.name());
055                    assertEquals("/test-id/internal", prefs.absolutePath());
056            }
057    
058            public void testCreateWithPath() {
059                    PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
060                    TransientPreferencesFactory prefsFactory = new TransientPreferencesFactory();
061                    settingsFactory.setPreferencesFactory(prefsFactory);
062    
063                    settingsFactory.setId("application.1.0");
064                    PreferencesSettings settings = (PreferencesSettings) settingsFactory.createSettings("user");
065                    TransientPreferences prefs = (TransientPreferences) settings.getPreferences();
066                    assertEquals("/application/1/0/user", prefs.absolutePath());
067            }
068    
069            public void testSetId() {
070                    PreferencesSettingsFactory settingsFactory = new PreferencesSettingsFactory();
071                    settingsFactory.setId("id");
072                    assertEquals("id", settingsFactory.getId());
073            }
074    
075    }