mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-12-30 21:17:49 +01:00
Merge pull request #252 from Fuzzlemann/master
PR for 3.6.3 (Fuzzlemann) (4)
This commit is contained in:
commit
99da328544
@ -174,7 +174,7 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
<properties>
|
<properties>
|
||||||
<sonar.language>java</sonar.language>
|
<sonar.language>java</sonar.language>
|
||||||
<sonar.jacoco.reportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPath>
|
<sonar.jacoco.reportPaths>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPaths>
|
||||||
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
|
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
|
||||||
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
|
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
@ -119,28 +119,4 @@ public class Log {
|
|||||||
public static void toLog(String source, Collection<Throwable> e) {
|
public static void toLog(String source, Collection<Throwable> e) {
|
||||||
Plan.getInstance().getPluginLogger().toLog(source, e);
|
Plan.getInstance().getPluginLogger().toLog(source, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Logs a message to the a given file with a timestamp.
|
|
||||||
*
|
|
||||||
* @param message Message to log to Errors.txt [timestamp] Message
|
|
||||||
* @param filename Name of the file to write to.
|
|
||||||
* @deprecated Should no longer be used, may break other log handling mechanisms.
|
|
||||||
* If exception requires additional information it should be placed in the source string.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static void toLog(String message, String filename) {
|
|
||||||
Plan.getInstance().getPluginLogger().toLog(message, filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to get the name for the error log file.
|
|
||||||
*
|
|
||||||
* @return Name of the error log file.
|
|
||||||
* @deprecated Should no longer be used, Errors.txt is handled by a separate class.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static String getErrorsFilename() {
|
|
||||||
return Plan.getInstance().getPluginLogger().getErrorsFilename();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ public class Plan extends BukkitPlugin<Plan> {
|
|||||||
|
|
||||||
Benchmark.start("Init Database");
|
Benchmark.start("Init Database");
|
||||||
Log.info(Locale.get(Msg.ENABLE_DB_INIT).toString());
|
Log.info(Locale.get(Msg.ENABLE_DB_INIT).toString());
|
||||||
if (Check.ErrorIfFalse(initDatabase(), Locale.get(Msg.ENABLE_DB_FAIL_DISABLE_INFO).toString())) {
|
if (Check.errorIfFalse(initDatabase(), Locale.get(Msg.ENABLE_DB_FAIL_DISABLE_INFO).toString())) {
|
||||||
Log.info(Locale.get(Msg.ENABLE_DB_INFO).parse(db.getConfigName()));
|
Log.info(Locale.get(Msg.ENABLE_DB_INFO).parse(db.getConfigName()));
|
||||||
} else {
|
} else {
|
||||||
disablePlugin();
|
disablePlugin();
|
||||||
@ -316,7 +316,7 @@ public class Plan extends BukkitPlugin<Plan> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Check.ErrorIfFalse(db.init(), Locale.get(Msg.ENABLE_DB_FAIL_DISABLE_INFO).toString());
|
return Check.errorIfFalse(db.init(), Locale.get(Msg.ENABLE_DB_FAIL_DISABLE_INFO).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startAnalysisRefreshTask(int everyXMinutes) throws IllegalStateException {
|
private void startAnalysisRefreshTask(int everyXMinutes) throws IllegalStateException {
|
||||||
|
@ -33,22 +33,10 @@ public abstract class Importer {
|
|||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
public Importer() {
|
Importer() {
|
||||||
info = "No info specified";
|
info = "No info specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Import data from users.
|
|
||||||
*
|
|
||||||
* @param uuids UUIDs of players to import
|
|
||||||
* @return Success of import
|
|
||||||
* @deprecated Use importData(Collection, String...) instead (new system)
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public boolean importData(Collection<UUID> uuids) {
|
|
||||||
return importData(uuids, new String[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method used for the import.
|
* Method used for the import.
|
||||||
* <p>
|
* <p>
|
||||||
@ -157,19 +145,6 @@ public abstract class Importer {
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Import data of a single player.
|
|
||||||
*
|
|
||||||
* @param uuid UUID of the player
|
|
||||||
* @return HandlingInfo used to modify saved userdata.
|
|
||||||
* @deprecated Deprecated (new system), use importData(UUID, String...)
|
|
||||||
* instead
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public HandlingInfo importData(UUID uuid) {
|
|
||||||
return importData(uuid, new String[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method used for getting the HandlingInfo object for the import data.
|
* Method used for getting the HandlingInfo object for the import data.
|
||||||
*
|
*
|
||||||
|
@ -14,7 +14,6 @@ import main.java.com.djrapitops.plan.utilities.comparators.StringLengthComparato
|
|||||||
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
|
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
import java.io.Closeable;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -33,7 +32,7 @@ import java.util.stream.Collectors;
|
|||||||
* @author Rsl1122
|
* @author Rsl1122
|
||||||
* @since 3.6.2
|
* @since 3.6.2
|
||||||
*/
|
*/
|
||||||
public class Locale implements Closeable {
|
public class Locale {
|
||||||
|
|
||||||
private final Plan plugin;
|
private final Plan plugin;
|
||||||
private final Map<Msg, Message> messages;
|
private final Map<Msg, Message> messages;
|
||||||
@ -47,7 +46,8 @@ public class Locale implements Closeable {
|
|||||||
public static void unload() {
|
public static void unload() {
|
||||||
Locale locale = LocaleHolder.getLocale();
|
Locale locale = LocaleHolder.getLocale();
|
||||||
if (locale != null) {
|
if (locale != null) {
|
||||||
locale.close();
|
locale.messages.clear();
|
||||||
|
LocaleHolder.locale = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,12 +334,6 @@ public class Locale implements Closeable {
|
|||||||
return messages.getOrDefault(msg, new Message(""));
|
return messages.getOrDefault(msg, new Message(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close() {
|
|
||||||
messages.clear();
|
|
||||||
LocaleHolder.locale = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class LocaleHolder {
|
private static class LocaleHolder {
|
||||||
|
|
||||||
private static Locale locale;
|
private static Locale locale;
|
||||||
|
@ -54,7 +54,7 @@ public class Check {
|
|||||||
* @param message Message to send if Condition is false
|
* @param message Message to send if Condition is false
|
||||||
* @return Condition
|
* @return Condition
|
||||||
*/
|
*/
|
||||||
public static boolean ErrorIfFalse(boolean condition, String message) {
|
public static boolean errorIfFalse(boolean condition, String message) {
|
||||||
if (!condition) {
|
if (!condition) {
|
||||||
Log.error(message);
|
Log.error(message);
|
||||||
}
|
}
|
||||||
|
@ -17,18 +17,18 @@ import java.security.spec.InvalidKeySpecException;
|
|||||||
*/
|
*/
|
||||||
public class PassEncryptUtil {
|
public class PassEncryptUtil {
|
||||||
|
|
||||||
public static final String PBKDF2_ALGORITHM = "PBKDF2WithHmacSHA1";
|
private static final String PBKDF2_ALGORITHM = "PBKDF2WithHmacSHA1";
|
||||||
// These constants may be changed without breaking existing hashes.
|
// These constants may be changed without breaking existing hashes.
|
||||||
public static final int SALT_BYTE_SIZE = 24;
|
private static final int SALT_BYTE_SIZE = 24;
|
||||||
public static final int HASH_BYTE_SIZE = 18;
|
private static final int HASH_BYTE_SIZE = 18;
|
||||||
public static final int PBKDF2_ITERATIONS = 64000;
|
private static final int PBKDF2_ITERATIONS = 64000;
|
||||||
// These constants define the encoding and may not be changed.
|
// These constants define the encoding and may not be changed.
|
||||||
public static final int HASH_SECTIONS = 5;
|
private static final int HASH_SECTIONS = 5;
|
||||||
public static final int HASH_ALGORITHM_INDEX = 0;
|
private static final int HASH_ALGORITHM_INDEX = 0;
|
||||||
public static final int ITERATION_INDEX = 1;
|
private static final int ITERATION_INDEX = 1;
|
||||||
public static final int HASH_SIZE_INDEX = 2;
|
private static final int HASH_SIZE_INDEX = 2;
|
||||||
public static final int SALT_INDEX = 3;
|
private static final int SALT_INDEX = 3;
|
||||||
public static final int PBKDF2_INDEX = 4;
|
private static final int PBKDF2_INDEX = 4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor used to hide the public constructor
|
* Constructor used to hide the public constructor
|
||||||
@ -41,7 +41,7 @@ public class PassEncryptUtil {
|
|||||||
return createHash(password.toCharArray());
|
return createHash(password.toCharArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String createHash(char[] password) throws CannotPerformOperationException {
|
private static String createHash(char[] password) throws CannotPerformOperationException {
|
||||||
// Generate a random salt
|
// Generate a random salt
|
||||||
SecureRandom random = new SecureRandom();
|
SecureRandom random = new SecureRandom();
|
||||||
byte[] salt = new byte[SALT_BYTE_SIZE];
|
byte[] salt = new byte[SALT_BYTE_SIZE];
|
||||||
@ -63,7 +63,7 @@ public class PassEncryptUtil {
|
|||||||
return verifyPassword(password.toCharArray(), correctHash);
|
return verifyPassword(password.toCharArray(), correctHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean verifyPassword(char[] password, String correctHash) throws CannotPerformOperationException, InvalidHashException {
|
private static boolean verifyPassword(char[] password, String correctHash) throws CannotPerformOperationException, InvalidHashException {
|
||||||
// Decode the hash into its parameters
|
// Decode the hash into its parameters
|
||||||
String[] params = correctHash.split(":");
|
String[] params = correctHash.split(":");
|
||||||
if (params.length != HASH_SECTIONS) {
|
if (params.length != HASH_SECTIONS) {
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package test.java.main.java.com.djrapitops.plan;
|
||||||
|
|
||||||
|
import main.java.com.djrapitops.plan.Plan;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
import test.java.utils.TestInit;
|
||||||
|
|
||||||
|
import static junit.framework.TestCase.assertEquals;
|
||||||
|
import static junit.framework.TestCase.assertFalse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Fuzzlemann
|
||||||
|
*/
|
||||||
|
@RunWith(PowerMockRunner.class)
|
||||||
|
@PrepareForTest(JavaPlugin.class)
|
||||||
|
public class ServerVariableHolderTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testServerVariable() throws Exception {
|
||||||
|
TestInit.init();
|
||||||
|
|
||||||
|
boolean usingPaper = Plan.getInstance().getVariable().isUsingPaper();
|
||||||
|
assertFalse(usingPaper);
|
||||||
|
|
||||||
|
String ip = Plan.getInstance().getVariable().getIp();
|
||||||
|
assertEquals(ip, "0.0.0.0");
|
||||||
|
}
|
||||||
|
}
|
@ -18,6 +18,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,47 +28,40 @@ import static org.junit.Assert.assertTrue;
|
|||||||
@PrepareForTest(JavaPlugin.class)
|
@PrepareForTest(JavaPlugin.class)
|
||||||
public class SettingsTest {
|
public class SettingsTest {
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public SettingsTest() {
|
public SettingsTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
TestInit.init();
|
TestInit.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsTrue() {
|
public void testIsTrue() {
|
||||||
assertTrue("Webserver supposed to be enabled by default", Settings.WEBSERVER_ENABLED.isTrue());
|
assertTrue("Webserver supposed to be enabled by default", Settings.WEBSERVER_ENABLED.isTrue());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Test
|
||||||
*
|
public void testIsTrue2() {
|
||||||
*/
|
Settings gatherCommands = Settings.GATHERCOMMANDS;
|
||||||
|
|
||||||
|
gatherCommands.setValue(false);
|
||||||
|
assertFalse(gatherCommands.isTrue());
|
||||||
|
|
||||||
|
gatherCommands.setValue(true);
|
||||||
|
assertTrue(gatherCommands.isTrue());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testToString() {
|
public void testToString() {
|
||||||
assertEquals("sqlite", Settings.DB_TYPE.toString());
|
assertEquals("sqlite", Settings.DB_TYPE.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetNumber() {
|
public void testGetNumber() {
|
||||||
assertEquals(8804, Settings.WEBSERVER_PORT.getNumber());
|
assertEquals(8804, Settings.WEBSERVER_PORT.getNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetStringList() {
|
public void testGetStringList() {
|
||||||
List<String> exp = new ArrayList<>();
|
List<String> exp = new ArrayList<>();
|
||||||
@ -76,9 +70,6 @@ public class SettingsTest {
|
|||||||
assertEquals(exp, result);
|
assertEquals(exp, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetPath() {
|
public void testGetPath() {
|
||||||
assertEquals("Settings.WebServer.Enabled", Settings.WEBSERVER_ENABLED.getPath());
|
assertEquals("Settings.WebServer.Enabled", Settings.WEBSERVER_ENABLED.getPath());
|
||||||
|
@ -111,7 +111,7 @@ public class DataCacheGetQueueTest {
|
|||||||
UserData exp = MockUtils.mockUser2();
|
UserData exp = MockUtils.mockUser2();
|
||||||
|
|
||||||
DataCacheGetQueue instance = new DataCacheGetQueue(plan);
|
DataCacheGetQueue instance = new DataCacheGetQueue(plan);
|
||||||
instance.scheduleForGet(exp.getUuid(), (DBCallableProcessor) data -> assertTrue(data.equals(exp)));
|
instance.scheduleForGet(exp.getUuid(), data -> assertTrue(data.equals(exp)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,6 +122,6 @@ public class DataCacheGetQueueTest {
|
|||||||
public void testStop() {
|
public void testStop() {
|
||||||
DataCacheGetQueue instance = new DataCacheGetQueue(plan);
|
DataCacheGetQueue instance = new DataCacheGetQueue(plan);
|
||||||
instance.stop();
|
instance.stop();
|
||||||
instance.scheduleForGet(MockUtils.getPlayerUUID(), (DBCallableProcessor) data -> fail("Called get process after stop."));
|
instance.scheduleForGet(MockUtils.getPlayerUUID(), data -> fail("Called get process after stop."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
package test.java.main.java.com.djrapitops.plan.utilities;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.command.ISender;
|
||||||
|
import main.java.com.djrapitops.plan.utilities.Check;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
import test.java.utils.MockUtils;
|
||||||
|
import test.java.utils.RandomData;
|
||||||
|
import test.java.utils.TestInit;
|
||||||
|
|
||||||
|
import static junit.framework.TestCase.assertFalse;
|
||||||
|
import static junit.framework.TestCase.assertTrue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Fuzzlemann
|
||||||
|
*/
|
||||||
|
@RunWith(PowerMockRunner.class)
|
||||||
|
@PrepareForTest(JavaPlugin.class)
|
||||||
|
public class CheckTest {
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
TestInit.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTrueCheck() {
|
||||||
|
String message = RandomData.randomString(10);
|
||||||
|
|
||||||
|
assertTrue(Check.isTrue(true, message));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTrueAtISenderCheck() {
|
||||||
|
String message = RandomData.randomString(10);
|
||||||
|
ISender sender = MockUtils.mockIPlayer();
|
||||||
|
|
||||||
|
assertTrue(Check.isTrue(true, message, sender));
|
||||||
|
assertFalse(Check.isTrue(false, message, sender));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testErrorCheck() {
|
||||||
|
String message = RandomData.randomString(10);
|
||||||
|
|
||||||
|
assertTrue(Check.errorIfFalse(true, message));
|
||||||
|
assertFalse(Check.errorIfFalse(false, message));
|
||||||
|
}
|
||||||
|
}
|
@ -9,11 +9,12 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
import org.powermock.modules.junit4.PowerMockRunner;
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
import test.java.utils.TestInit;
|
|
||||||
import test.java.utils.MockUtils;
|
import test.java.utils.MockUtils;
|
||||||
|
import test.java.utils.TestInit;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@ -24,40 +25,24 @@ import static org.junit.Assert.*;
|
|||||||
@PrepareForTest(JavaPlugin.class)
|
@PrepareForTest(JavaPlugin.class)
|
||||||
public class FormatUtilsTest {
|
public class FormatUtilsTest {
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public FormatUtilsTest() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
TestInit.init();
|
TestInit.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormatTimeAmount() throws Exception {
|
public void testFormatTimeAmount() {
|
||||||
TestInit.init();
|
long ms = 1000L;
|
||||||
long second = 1000L;
|
|
||||||
String expResult = "1s";
|
String expResult = "1s";
|
||||||
String result = FormatUtils.formatTimeAmount(second);
|
String result = FormatUtils.formatTimeAmount(ms);
|
||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormatTimeAmountSinceDate() throws Exception {
|
public void testFormatTimeAmountSinceDate() {
|
||||||
TestInit.init();
|
|
||||||
Date before = new Date(300000L);
|
Date before = new Date(300000L);
|
||||||
Date now = new Date(310000L);
|
Date now = new Date(310000L);
|
||||||
|
|
||||||
String expResult = "10s";
|
String expResult = "10s";
|
||||||
String result = FormatUtils.formatTimeAmountDifference(before.getTime(), now.getTime());
|
String result = FormatUtils.formatTimeAmountDifference(before.getTime(), now.getTime());
|
||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
@ -65,7 +50,7 @@ public class FormatUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormatTimeStamp() {
|
public void testFormatTimeStamp() {
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd',' HH':'mm");
|
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd, HH:mm", Locale.ENGLISH);
|
||||||
|
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
date.setTime(0);
|
date.setTime(0);
|
||||||
@ -79,7 +64,7 @@ public class FormatUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormatTimeStampYear() {
|
public void testFormatTimeStampYear() {
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd YYYY',' HH':'mm");
|
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd YYYY, HH:mm", Locale.ENGLISH);
|
||||||
|
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
date.setTime(0);
|
date.setTime(0);
|
||||||
@ -91,9 +76,20 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Test
|
||||||
*
|
public void testFormatTimeStampSecond() {
|
||||||
*/
|
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd, HH:mm:ss", Locale.ENGLISH);
|
||||||
|
|
||||||
|
Date date = new Date();
|
||||||
|
date.setTime(0);
|
||||||
|
|
||||||
|
String expResult = dateFormat.format(date);
|
||||||
|
|
||||||
|
long epochZero = 0L;
|
||||||
|
String result = FormatUtils.formatTimeStampSecond(epochZero);
|
||||||
|
assertEquals(expResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRemoveLetters() {
|
public void testRemoveLetters() {
|
||||||
String dataPoint = "435729847jirggu.eiwb¤#¤%¤#";
|
String dataPoint = "435729847jirggu.eiwb¤#¤%¤#";
|
||||||
@ -102,9 +98,6 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testRemoveNumbers() {
|
public void testRemoveNumbers() {
|
||||||
String dataPoint = "34532453.5 $";
|
String dataPoint = "34532453.5 $";
|
||||||
@ -113,9 +106,6 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testRemoveNumbers2() {
|
public void testRemoveNumbers2() {
|
||||||
String dataPoint = "l43r4545tl43 4.5";
|
String dataPoint = "l43r4545tl43 4.5";
|
||||||
@ -124,9 +114,6 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testParseVersionNumber() {
|
public void testParseVersionNumber() {
|
||||||
String versionString = "2.10.2";
|
String versionString = "2.10.2";
|
||||||
@ -135,9 +122,6 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testVersionNumber() {
|
public void testVersionNumber() {
|
||||||
String versionString = "2.10.2";
|
String versionString = "2.10.2";
|
||||||
@ -147,9 +131,6 @@ public class FormatUtilsTest {
|
|||||||
assertTrue("Higher version not higher", result > result2);
|
assertTrue("Higher version not higher", result > result2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testMergeArrays() {
|
public void testMergeArrays() {
|
||||||
String[][] arrays = new String[][]{new String[]{"Test", "One"}, new String[]{"Test", "Two"}};
|
String[][] arrays = new String[][]{new String[]{"Test", "One"}, new String[]{"Test", "Two"}};
|
||||||
@ -158,9 +139,6 @@ public class FormatUtilsTest {
|
|||||||
assertArrayEquals(expResult, result);
|
assertArrayEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormatLocation() {
|
public void testFormatLocation() {
|
||||||
World mockWorld = MockUtils.mockWorld();
|
World mockWorld = MockUtils.mockWorld();
|
||||||
@ -170,24 +148,16 @@ public class FormatUtilsTest {
|
|||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testCutDecimals() throws Exception {
|
public void testCutDecimals() throws Exception {
|
||||||
TestInit.init();
|
|
||||||
double d = 0.05234;
|
double d = 0.05234;
|
||||||
String expResult = "0,05";
|
String expResult = "0,05";
|
||||||
String result = FormatUtils.cutDecimals(d);
|
String result = FormatUtils.cutDecimals(d);
|
||||||
assertEquals(expResult, result);
|
assertEquals(expResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testCutDecimals2() throws Exception {
|
public void testCutDecimals2() throws Exception {
|
||||||
TestInit.init();
|
|
||||||
double d = 0.05634;
|
double d = 0.05634;
|
||||||
String expResult = "0,06";
|
String expResult = "0,06";
|
||||||
String result = FormatUtils.cutDecimals(d);
|
String result = FormatUtils.cutDecimals(d);
|
||||||
|
@ -10,7 +10,6 @@ import com.djrapitops.plugin.command.bukkit.BukkitCMDSender;
|
|||||||
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@ -30,19 +29,6 @@ import static org.junit.Assert.assertEquals;
|
|||||||
@PrepareForTest({JavaPlugin.class, Bukkit.class})
|
@PrepareForTest({JavaPlugin.class, Bukkit.class})
|
||||||
public class MiscUtilsTest {
|
public class MiscUtilsTest {
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public MiscUtilsTest() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Before
|
|
||||||
public void setUp() throws Exception {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetPlayerDisplaynameArgsPerm() {
|
public void testGetPlayerDisplaynameArgsPerm() {
|
||||||
String[] args = new String[]{"Rsl1122", "Test"};
|
String[] args = new String[]{"Rsl1122", "Test"};
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
package test.java.main.java.com.djrapitops.plan.utilities;
|
||||||
|
|
||||||
|
import main.java.com.djrapitops.plan.utilities.PassEncryptUtil;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import test.java.utils.RandomData;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Fuzzlemann
|
||||||
|
*/
|
||||||
|
public class PassEncryptTest {
|
||||||
|
|
||||||
|
private final List<String> PASSWORDS = new ArrayList<>();
|
||||||
|
private final Map<String, String> PASSWORD_MAP = new HashMap<>();
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
IntStream.range(0, 50).forEach(i -> PASSWORDS.add(RandomData.randomString(RandomData.randomInt(1, 100))));
|
||||||
|
|
||||||
|
for (String password : PASSWORDS) {
|
||||||
|
PASSWORD_MAP.put(password, PassEncryptUtil.createHash(password));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testVerification() throws Exception {
|
||||||
|
for (Map.Entry<String, String> entry : PASSWORD_MAP.entrySet()) {
|
||||||
|
String password = entry.getKey();
|
||||||
|
String hash = entry.getValue();
|
||||||
|
|
||||||
|
assertTrue(PassEncryptUtil.verifyPassword(password, hash));
|
||||||
|
assertFalse(PassEncryptUtil.verifyPassword(RandomData.randomString(RandomData.randomInt(1, 100)), hash));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -15,11 +15,16 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
public class RandomData {
|
public class RandomData {
|
||||||
|
|
||||||
private static final Random r = new Random();
|
private static final Random r = new Random();
|
||||||
|
|
||||||
|
public static int randomInt(int rangeStart, int rangeEnd) {
|
||||||
|
return ThreadLocalRandom.current().nextInt(rangeStart, rangeEnd);
|
||||||
|
}
|
||||||
|
|
||||||
public static List<UserData> randomUserData() {
|
public static List<UserData> randomUserData() {
|
||||||
List<UserData> test = new ArrayList<>();
|
List<UserData> test = new ArrayList<>();
|
||||||
for (int i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
|
@ -47,26 +47,7 @@ public class TestInit {
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static File getTestFolder() {
|
private void setUp(boolean clearOnStart) throws Exception {
|
||||||
File testFolder = new File("temporaryTestFolder");
|
|
||||||
testFolder.mkdir();
|
|
||||||
return testFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void clean() throws IOException {
|
|
||||||
clean(getTestFolder());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void clean(File testFolder) throws IOException {
|
|
||||||
if (testFolder.exists() && testFolder.isDirectory()) {
|
|
||||||
for (File f : testFolder.listFiles()) {
|
|
||||||
Files.deleteIfExists(f.toPath());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated // Use Test.init instead.
|
|
||||||
public void setUp(boolean clearOnStart) throws Exception {
|
|
||||||
planMock = PowerMockito.mock(Plan.class);
|
planMock = PowerMockito.mock(Plan.class);
|
||||||
StaticHolder.setInstance(Plan.class, planMock);
|
StaticHolder.setInstance(Plan.class, planMock);
|
||||||
StaticHolder.setInstance(planMock.getClass(), planMock);
|
StaticHolder.setInstance(planMock.getClass(), planMock);
|
||||||
@ -108,12 +89,32 @@ public class TestInit {
|
|||||||
when(planMock.fetch()).thenReturn(fetch);
|
when(planMock.fetch()).thenReturn(fetch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static File getTestFolder() {
|
||||||
|
File testFolder = new File("temporaryTestFolder");
|
||||||
|
testFolder.mkdir();
|
||||||
|
return testFolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void clean() throws IOException {
|
||||||
|
clean(getTestFolder());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void clean(File testFolder) throws IOException {
|
||||||
|
if (testFolder.exists() && testFolder.isDirectory()) {
|
||||||
|
for (File f : testFolder.listFiles()) {
|
||||||
|
Files.deleteIfExists(f.toPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Server mockServer() {
|
private Server mockServer() {
|
||||||
Server mockServer = PowerMockito.mock(Server.class);
|
Server mockServer = PowerMockito.mock(Server.class);
|
||||||
|
|
||||||
|
OfflinePlayer[] ops = new OfflinePlayer[]{MockUtils.mockPlayer(), MockUtils.mockPlayer2()};
|
||||||
|
|
||||||
when(mockServer.getIp()).thenReturn("0.0.0.0");
|
when(mockServer.getIp()).thenReturn("0.0.0.0");
|
||||||
when(mockServer.getMaxPlayers()).thenReturn(20);
|
when(mockServer.getMaxPlayers()).thenReturn(20);
|
||||||
when(mockServer.getName()).thenReturn("Bukkit");
|
when(mockServer.getName()).thenReturn("Bukkit");
|
||||||
OfflinePlayer[] ops = new OfflinePlayer[]{MockUtils.mockPlayer(), MockUtils.mockPlayer2()};
|
|
||||||
when(mockServer.getOfflinePlayers()).thenReturn(ops);
|
when(mockServer.getOfflinePlayers()).thenReturn(ops);
|
||||||
return mockServer;
|
return mockServer;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user