/* Copyright (C) 2013 Tobias Baum <tbaum at tntinteractive.de> This file is a part of Portalsammler. Portalsammler is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Portalsammler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Portalsammler. If not, see <http://www.gnu.org/licenses/>. */ package de.tntinteractive.portalsammler.engine; import static org.junit.Assert.assertEquals; import org.junit.Test; public final class SourceSettingsTest { @Test public void testStoreAndRetrieveValue() { final SourceSettings s = new SourceSettings(); final SettingKey key = new SettingKey("a"); s.set(key, "123"); assertEquals("123", s.get(key, new FailAllGui())); } @Test public void testStoreAndRetrieveTwoValues() { final SourceSettings s = new SourceSettings(); final SettingKey key1 = new SettingKey("a"); final SettingKey key2 = new SettingKey("b"); s.set(key1, "123"); s.set(key2, "abc"); assertEquals("123", s.get(key1, new FailAllGui())); assertEquals("abc", s.get(key2, new FailAllGui())); } @Test public void testSetMultipleTimes() { final SourceSettings s = new SourceSettings(); final SettingKey key = new SettingKey("a"); s.set(key, "123"); s.set(key, "456"); assertEquals("456", s.get(key, new FailAllGui())); } private static final class MissingValueStubGui extends FailAllGui { @Override public String askForSetting(final SettingKey key) { return key.getKeyString() + "123"; } } @Test public void testMissingValueLeadsToGuiInteraction() { final SourceSettings s = new SourceSettings(); final SettingKey key = new SettingKey("a"); assertEquals("a123", s.get(key, new MissingValueStubGui())); } @Test public void testEmptyValueLeadsToGuiInteraction() { final SourceSettings s = new SourceSettings(); final SettingKey key = new SettingKey("b"); s.set(key, ""); assertEquals("b123", s.get(key, new MissingValueStubGui())); } }