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();
}
}