113 lines
4.1 KiB
Java
113 lines
4.1 KiB
Java
/*
|
|
* This program 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.
|
|
*
|
|
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package fr.neatmonster.nocheatplus.test;
|
|
|
|
import static org.junit.Assert.fail;
|
|
|
|
import org.bukkit.Material;
|
|
import org.junit.Test;
|
|
|
|
import fr.neatmonster.nocheatplus.compat.BridgeMaterial;
|
|
import fr.neatmonster.nocheatplus.config.ConfPaths;
|
|
import fr.neatmonster.nocheatplus.config.ConfigFile;
|
|
import fr.neatmonster.nocheatplus.config.DefaultConfig;
|
|
import fr.neatmonster.nocheatplus.config.PathUtils;
|
|
import fr.neatmonster.nocheatplus.config.RawConfigFile;
|
|
import fr.neatmonster.nocheatplus.logging.StaticLog;
|
|
|
|
public class TestConfig {
|
|
|
|
private void testReadMaterial(String input, Material expectedMat) {
|
|
Material mat = RawConfigFile.parseMaterial(input);
|
|
if (expectedMat != mat) {
|
|
fail("Expected " + expectedMat + " for input '" + input + "', got instead: " + mat);
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@Test
|
|
public void testReadMaterial() {
|
|
// Some really needed parts first.
|
|
Material lily = BridgeMaterial.LILY_PAD;
|
|
String lilys = lily.name();
|
|
testReadMaterial(lilys.replaceAll("_", " "), lily);
|
|
testReadMaterial(lilys.replaceAll("_", "-"), lily);
|
|
testReadMaterial(lilys.replaceAll("e", "E"), lily);
|
|
|
|
testReadMaterial("flint and steel", Material.FLINT_AND_STEEL);
|
|
testReadMaterial("259", Material.FLINT_AND_STEEL);
|
|
|
|
// Generic test.
|
|
for (final Material mat : Material.values()) {
|
|
if (mat.name().equalsIgnoreCase("LOCKED_CHEST")) {
|
|
continue;
|
|
}
|
|
testReadMaterial(mat.name(), mat);
|
|
testReadMaterial(Integer.toString(mat.getId()), mat);
|
|
}
|
|
}
|
|
|
|
// TODO: More ConfigFile tests, once processing gets changed.
|
|
|
|
@Test
|
|
public void testMovePaths() {
|
|
StaticLog.setUseLogManager(false);
|
|
ConfigFile config = new ConfigFile();
|
|
|
|
// Simple moved boolean.
|
|
config.set(ConfPaths.LOGGING_FILE, false);
|
|
config = PathUtils.processPaths(config, "test", false);
|
|
if (config == null) {
|
|
fail("Expect config to be changed at all.");
|
|
}
|
|
if (config.contains(ConfPaths.LOGGING_FILE)) {
|
|
fail("Expect path be removed: " + ConfPaths.LOGGING_FILE);
|
|
}
|
|
Boolean val = config.getBoolean(ConfPaths.LOGGING_BACKEND_FILE_ACTIVE, true);
|
|
if (val == null || val.booleanValue()) {
|
|
fail("Expect new path to be set to false: " + ConfPaths.LOGGING_BACKEND_FILE_ACTIVE);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testDefaults() {
|
|
ConfigFile defaults = new ConfigFile();
|
|
defaults.set("all", 1.0);
|
|
defaults.set("defaultsOnly", 1.0);
|
|
ConfigFile config = new ConfigFile();
|
|
config.setDefaults(defaults);
|
|
config.set("all", 2.0);
|
|
double val = config.getDouble("all", 3.0);
|
|
if (val != 2.0) {
|
|
fail("Expect 2.0 if set in config, got instead: " + val);
|
|
}
|
|
val = config.getDouble("defaultsOnly", 3.0);
|
|
if (val != 3.0) { // Pitty.
|
|
fail("Expect 3.0 (default argument), got instead: " + val);
|
|
}
|
|
val = config.getDouble("notset", 3.0);
|
|
if (val != 3.0) {
|
|
fail("Expect 3.0 (not set), got instead: " + val);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testActionLists() {
|
|
ConfigFile config = new DefaultConfig();
|
|
config.getOptimizedActionList(ConfPaths.MOVING_SURVIVALFLY_ACTIONS, null);
|
|
}
|
|
|
|
}
|