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; 017 018 import junit.framework.TestCase; 019 020 /** 021 * @author Peter De Bruycker 022 */ 023 public class SettingsManagerTests extends TestCase { 024 public void testSetSettingsFactory() { 025 SettingsManager settingsManager = new SettingsManager(); 026 assertTrue("Default must be TransientSettingsFactory", 027 settingsManager.getSettingsFactory() instanceof TransientSettingsFactory); 028 029 TestableSettingsFactory factory = new TestableSettingsFactory(); 030 settingsManager.setSettingsFactory(factory); 031 assertEquals(factory, settingsManager.getSettingsFactory()); 032 033 settingsManager.setSettingsFactory(null); 034 assertTrue("null resets factory", settingsManager.getSettingsFactory() instanceof TransientSettingsFactory); 035 } 036 037 public void testGetInternalSettings() throws SettingsException { 038 SettingsManager settingsManager = new SettingsManager(); 039 040 TestableSettingsFactory factory = new TestableSettingsFactory(); 041 settingsManager.setSettingsFactory(factory); 042 043 TransientSettings settings = new TransientSettings(); 044 factory.setSettings(settings); 045 046 Settings internalSettings = settingsManager.getInternalSettings(); 047 assertSame(settings, internalSettings); 048 assertEquals(1, factory.getCount()); 049 assertEquals("internal", factory.getKey()); 050 051 factory.reset(); 052 053 Settings internalSettings2 = settingsManager.getInternalSettings(); 054 assertSame(internalSettings, internalSettings2); 055 assertEquals(0, factory.getCount()); 056 } 057 058 public void testGetUserSettings() throws SettingsException { 059 SettingsManager settingsManager = new SettingsManager(); 060 061 TestableSettingsFactory factory = new TestableSettingsFactory(); 062 settingsManager.setSettingsFactory(factory); 063 064 TransientSettings settings = new TransientSettings(); 065 factory.setSettings(settings); 066 067 Settings userSettings = settingsManager.getUserSettings(); 068 assertSame(settings, userSettings); 069 assertEquals(1, factory.getCount()); 070 assertEquals("user", factory.getKey()); 071 072 factory.reset(); 073 074 Settings userSettings2 = settingsManager.getUserSettings(); 075 assertSame(userSettings, userSettings2); 076 assertEquals(0, factory.getCount()); 077 } 078 079 public void testCreateSettings() throws SettingsException { 080 SettingsManager settingsManager = new SettingsManager(); 081 082 TestableSettingsFactory factory = new TestableSettingsFactory(); 083 settingsManager.setSettingsFactory(factory); 084 085 TransientSettings settings = new TransientSettings(); 086 factory.setSettings(settings); 087 088 Settings otherSettings = settingsManager.createSettings("key"); 089 assertSame(settings, otherSettings); 090 assertEquals(1, factory.getCount()); 091 assertEquals("key", factory.getKey()); 092 093 factory.reset(); 094 factory.setSettings(settings); 095 096 Settings otherSettings2 = settingsManager.createSettings("key"); 097 assertSame(settings, otherSettings2); 098 assertEquals(1, factory.getCount()); 099 assertEquals("key", factory.getKey()); 100 } 101 102 }