package rmblworx.tools.timey.gui.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import org.junit.Test;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Tests fürs Verwalten der GUI-Konfiguration.
* @author Christian Raue {@literal <christian.raue@gmail.com>}
*/
public class ConfigManagerTest {
/**
* Testet das Festlegen/Abrufen der aktiven Konfiguration.
*/
@Test
public final void testSetGetCurrentConfig() {
final Config expectedConfig = new Config();
ConfigManager.setCurrentConfig(expectedConfig);
assertSame(expectedConfig, ConfigManager.getCurrentConfig());
}
/**
* Testet das Abrufen der aktiven Konfiguration, ohne zuvor eine festgelegt zu haben.
*/
@Test
public final void testGetCurrentConfig() {
final Config currentConfig = ConfigManager.getCurrentConfig();
// muss inhaltlich mit Standardkonfiguration übereinstimmen
assertEquals(getConfigAsString(new Config()), getConfigAsString(currentConfig));
// mehrmaliges Abrufen muss dieselbe Instanz liefern
assertSame(currentConfig, ConfigManager.getCurrentConfig());
}
/**
* Testet das Abrufen einer neuen Standardkonfiguration.
*/
@Test
public final void testGetNewDefaultConfig() {
final Config defaultConfig = ConfigManager.getNewDefaultConfig();
// muss inhaltlich mit Standardkonfiguration übereinstimmen
assertEquals(getConfigAsString(new Config()), getConfigAsString(defaultConfig));
// mehrmaliges Abrufen muss jeweils neue Instanz liefern
assertNotSame(defaultConfig, ConfigManager.getNewDefaultConfig());
}
/**
* @param config Konfiguration
* @return String-Repräsentation der Konfiguration
*/
private String getConfigAsString(final Config config) {
return new ConfigStorage().getConfigAsProperties(config).toString();
}
}