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 }