package com.nicewuerfel.blockown; import static org.junit.Assert.assertTrue; import com.nicewuerfel.blockown.output.Output; import org.bukkit.World; import org.junit.Test; import org.mockito.Mockito; import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.logging.Level; import java.util.logging.Logger; public class TestSetting { private static final class TestOutput implements Output { private final Logger logger; TestOutput() { logger = Logger.getGlobal(); logger.setLevel(Level.ALL); } @Override public void printError(Throwable throwable) { logger.severe(throwable.getMessage()); } @Override public void printError(String message) { logger.severe(message); } @Override public void printError(String message, Throwable throwable) { logger.severe(message + "\n" + throwable.getMessage()); } @Override public void printException(Throwable throwable) { logger.warning(throwable.getMessage()); } @Override public void printException(String message) { logger.severe(message); } @Override public void printException(String message, Throwable throwable) { logger.severe(message + "\n" + throwable.getMessage()); } @Override public void printConsole(String message) { logger.info(message); } @Override public void broadcast(String message) { logger.fine("BROADCAST: " + message.toString()); } @Override public void broadcast(World world, String message) { logger.fine("BROADCAST IN " + world.getName() + ": " + message.toString()); } @Override public void debugMessage(String message) { logger.finest(message); } @Override public Logger getLogger() { return logger; } } @Test public void testLoadSave() throws IOException { // Only test for exceptions World world = Mockito.mock(World.class); Mockito.when(world.getName()).thenReturn("world"); File configFile = new File("config.yml"); Setting setting = Setting.load(new TestOutput(), configFile); setting.loadEnabledWorlds(Collections.singletonList(world)); setting.save(); assertTrue(configFile.exists()); configFile.delete(); } }