Updated ProcessQueue to use generics Process object

Updated HandlingInfo to extend Process object. (HandlingInfo May be removed in the near future)
This commit is contained in:
Rsl1122 2017-08-20 16:51:26 +03:00
parent 7c44a96e71
commit da3006726f
24 changed files with 80 additions and 130 deletions

View File

@ -8,6 +8,7 @@ import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.data.TPS; import main.java.com.djrapitops.plan.data.TPS;
import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.UserData;
import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo;
import main.java.com.djrapitops.plan.data.handling.info.LogoutInfo;
import main.java.com.djrapitops.plan.data.handling.info.ReloadInfo; import main.java.com.djrapitops.plan.data.handling.info.ReloadInfo;
import main.java.com.djrapitops.plan.database.Database; import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.locale.Locale; import main.java.com.djrapitops.plan.locale.Locale;
@ -109,7 +110,7 @@ public class DataCacheHandler extends SessionCache {
*/ */
public void startQueues() { public void startQueues() {
getTask = new DataCacheGetQueue(plugin); getTask = new DataCacheGetQueue(plugin);
processTask = new DataCacheProcessQueue(this); processTask = new DataCacheProcessQueue();
clearTask = new DataCacheClearQueue(this); clearTask = new DataCacheClearQueue(this);
saveTask = new DataCacheSaveQueue(plugin, this); saveTask = new DataCacheSaveQueue(plugin, this);
} }
@ -235,11 +236,12 @@ public class DataCacheHandler extends SessionCache {
* *
* @param i Object that extends HandlingInfo. * @param i Object that extends HandlingInfo.
*/ */
@Deprecated
public void addToPool(HandlingInfo i) { public void addToPool(HandlingInfo i) {
if (i == null) { if (i == null) {
return; return;
} }
//TODO processTask.addToPool(i); processTask.addToQueue(i);
} }
/** /**
@ -264,11 +266,11 @@ public class DataCacheHandler extends SessionCache {
UUID uuid = p.getUuid(); UUID uuid = p.getUuid();
endSession(uuid); endSession(uuid);
String worldName = ((Player) p.getWrappedPlayerClass()).getWorld().getName(); String worldName = ((Player) p.getWrappedPlayerClass()).getWorld().getName();
//TODO toProcess.add(new LogoutInfo(uuid, time, p.isBanned(), p.getGamemode().name(), getSession(uuid), worldName)); toProcess.add(new LogoutInfo(uuid, time, p.isBanned(), p.getGamemode().name(), getSession(uuid), worldName));
} }
Log.debug("ToProcess size_AFTER: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size()); Log.debug("ToProcess size_AFTER: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size());
//TODO toProcess.sort(new HandlingInfoTimeComparator()); // toProcess.sort(new HandlingInfoTimeComparator());
//TODO processUnprocessedHandlingInfo(toProcess); processUnprocessedHandlingInfo(toProcess);
Benchmark.stop("Cache: ProcessOnlineHandlingInfo"); Benchmark.stop("Cache: ProcessOnlineHandlingInfo");
List<UserData> data = new ArrayList<>(); List<UserData> data = new ArrayList<>();
data.addAll(dataCache.values()); data.addAll(dataCache.values());
@ -292,16 +294,10 @@ public class DataCacheHandler extends SessionCache {
Benchmark.stop("Cache: SaveOnDisable"); Benchmark.stop("Cache: SaveOnDisable");
} }
private void processUnprocessedHandlingInfo(List<HandlingInfo> toProcess) { private void processUnprocessedHandlingInfo(List<Processor> toProcess) {
Log.debug("PROCESS: " + toProcess.size()); Log.debug("PROCESS: " + toProcess.size());
for (HandlingInfo i : toProcess) { for (Processor i : toProcess) {
UserData uData = dataCache.get(i.getUuid()); i.process();
if (uData == null) {
DBCallableProcessor p = i::process;
getUserDataForProcessing(p, i.getUuid());
} else {
i.process(uData);
}
} }
} }

View File

@ -147,8 +147,7 @@ public abstract class Importer {
public HandlingInfo importData(UUID uuid, String... args) { public HandlingInfo importData(UUID uuid, String... args) {
return new HandlingInfo(uuid, InfoType.OTHER, 0) { return new HandlingInfo(uuid, InfoType.OTHER, 0) {
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
return true;
} }
}; };
} }

View File

@ -27,11 +27,10 @@ public class ChatInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
ChatHandling.processChatInfo(uData, nickname); ChatHandling.processChatInfo(uData, nickname);
return true;
} }
} }

View File

@ -22,11 +22,10 @@ public class DeathInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
uData.setDeaths(uData.getDeaths() + 1); uData.setDeaths(uData.getDeaths() + 1);
return true;
} }
} }

View File

@ -1,6 +1,9 @@
package main.java.com.djrapitops.plan.data.handling.info; package main.java.com.djrapitops.plan.data.handling.info;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.UserData;
import main.java.com.djrapitops.plan.data.cache.DBCallableProcessor;
import main.java.com.djrapitops.plan.queue.processing.Processor;
import java.util.UUID; import java.util.UUID;
@ -11,7 +14,7 @@ import java.util.UUID;
* @author Rsl1122 * @author Rsl1122
* @since 3.0.0 * @since 3.0.0
*/ */
public abstract class HandlingInfo { public abstract class HandlingInfo extends Processor<UUID> implements DBCallableProcessor{
final UUID uuid; final UUID uuid;
final InfoType type; final InfoType type;
@ -26,7 +29,8 @@ public abstract class HandlingInfo {
* @param time Epoch ms of the event. * @param time Epoch ms of the event.
*/ */
public HandlingInfo(UUID uuid, InfoType type, long time) { public HandlingInfo(UUID uuid, InfoType type, long time) {
this.uuid = uuid; super(uuid);
this.uuid = object;
this.type = type; this.type = type;
this.time = time; this.time = time;
} }
@ -58,6 +62,10 @@ public abstract class HandlingInfo {
return time; return time;
} }
public void process() {
Plan.getInstance().getHandler().getUserDataForProcessing(this, uuid);
}
/** /**
* Process the info and modify the UserData object accordingly. * Process the info and modify the UserData object accordingly.
* <p> * <p>
@ -66,5 +74,5 @@ public abstract class HandlingInfo {
* @param uData UserData object to modify. * @param uData UserData object to modify.
* @return UUID of the UserData object and HandlingInfo match. * @return UUID of the UserData object and HandlingInfo match.
*/ */
public abstract boolean process(UserData uData); public abstract void process(UserData uData);
} }

View File

@ -22,12 +22,11 @@ public class KickInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
uData.setTimesKicked(uData.getTimesKicked() + 1); uData.setTimesKicked(uData.getTimesKicked() + 1);
return true;
} }
} }

View File

@ -33,11 +33,10 @@ public class KillInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
KillHandling.processKillInfo(uData, time, dead, weaponName); KillHandling.processKillInfo(uData, time, dead, weaponName);
return true;
} }
} }

View File

@ -62,12 +62,11 @@ public class LoginInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
LoginHandling.processLoginInfo(uData, time, ip, banned, nickname, loginTimes); LoginHandling.processLoginInfo(uData, time, ip, banned, nickname, loginTimes);
playtimeDependentInfo.process(uData); playtimeDependentInfo.process(uData);
return true;
} }
} }

View File

@ -36,14 +36,13 @@ public class LogoutInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uData.getUuid().equals(uuid)) { if (!uData.getUuid().equals(uuid)) {
return false; return;
} }
uData.addSession(sData); uData.addSession(sData);
LogoutHandling.processLogoutInfo(uData, time, banned); LogoutHandling.processLogoutInfo(uData, time, banned);
playtimeDependentInfo.process(uData); playtimeDependentInfo.process(uData);
return true;
} }
} }

View File

@ -18,11 +18,10 @@ public class PlaytimeDependentInfo extends HandlingInfo {
} }
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (!uuid.equals(uData.getUuid())) { if (!uuid.equals(uData.getUuid())) {
return false; return;
} }
PlaytimeHandling.processPlaytimeDependentInfo(uData, time, gamemode, worldName); PlaytimeHandling.processPlaytimeDependentInfo(uData, time, gamemode, worldName);
return true;
} }
} }

View File

@ -15,6 +15,7 @@ import org.bukkit.Server;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException;
import java.util.UUID; import java.util.UUID;
/** /**
@ -56,13 +57,15 @@ public class ServerInfoManager {
String webAddress = address[0]; String webAddress = address[0];
int port = Integer.parseInt(address[1]); int port = Integer.parseInt(address[1]);
String name = Settings.SERVER_NAME.toString(); String name = Settings.SERVER_NAME.toString();
try {
serverTable.saveCurrentServerInfo(new ServerInfo(-1, serverUUID, name, webAddress, port)); serverTable.saveCurrentServerInfo(new ServerInfo(-1, serverUUID, name, webAddress, port));
} catch (SQLException e) {
Log.toLog(this.getClass().getName(), e);
}
} }
public UUID generateNewUUID(Server server) { public UUID generateNewUUID(Server server) {
String seed = server.getName() + server.getIp() + server.getPort() + server.getVersion() + server.getBukkitVersion(); String seed = server.getName() + server.getIp() + server.getPort() + server.getVersion() + server.getBukkitVersion();
return UUID.nameUUIDFromBytes(seed.getBytes()); return UUID.nameUUIDFromBytes(seed.getBytes());
} }
} }

View File

@ -1,9 +1,6 @@
package main.java.com.djrapitops.plan.queue; package main.java.com.djrapitops.plan.queue;
import com.djrapitops.plugin.utilities.Verify;
import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Log;
import main.java.com.djrapitops.plan.data.cache.DBCallableProcessor;
import main.java.com.djrapitops.plan.data.cache.DataCacheHandler;
import main.java.com.djrapitops.plan.queue.processing.Processor; import main.java.com.djrapitops.plan.queue.processing.Processor;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
@ -16,30 +13,25 @@ import java.util.concurrent.BlockingQueue;
* @author Rsl1122 * @author Rsl1122
* @since 3.0.0 * @since 3.0.0
*/ */
// TODO Change Processing Queue to use more generic object as processing.
// GOAL: Processing queue can be used to process query results from the database
// & for processing events into statements.
public class DataCacheProcessQueue extends Queue<Processor> { public class DataCacheProcessQueue extends Queue<Processor> {
/** /**
* Class constructor, starts the new Thread for processing. * Class constructor, starts the new Thread for processing.
*
* @param handler current instance of DataCacheHandler.
*/ */
public DataCacheProcessQueue(DataCacheHandler handler) { public DataCacheProcessQueue() {
super(new ArrayBlockingQueue<>(20000)); super(new ArrayBlockingQueue<>(20000));
setup = new ProcessSetup(queue, handler); setup = new ProcessSetup(queue);
setup.go(); setup.go();
} }
/** /**
* Used to add HandlingInfo object to be processed. * Used to add HandlingInfo object to be processed.
* *
* @param info object that extends HandlingInfo. * @param processor object that extends HandlingInfo.
*/ */
public void addToPool(Processor info) { public void addToQueue(Processor processor) {
try { try {
queue.add(info); queue.add(processor);
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
Log.toLog(this.getClass().getName(), e); Log.toLog(this.getClass().getName(), e);
} }
@ -48,35 +40,27 @@ public class DataCacheProcessQueue extends Queue<Processor> {
class ProcessConsumer extends Consumer<Processor> { class ProcessConsumer extends Consumer<Processor> {
private DataCacheHandler handler;
ProcessConsumer(BlockingQueue<Processor> q, DataCacheHandler h) { ProcessConsumer(BlockingQueue<Processor> q) {
super(q, "ProcessQueueConsumer"); super(q, "ProcessQueueConsumer");
handler = h;
} }
@Override @Override
protected void consume(Processor info) { protected void consume(Processor process) {
if (!Verify.notNull(handler, info)) { if (process == null) {
return; return;
} }
process.process();
DBCallableProcessor p = data -> info.process();
//TODO handler.getUserDataForProcessing(p, info.getUuid());
} }
@Override @Override
protected void clearVariables() { protected void clearVariables() {
if (handler != null) {
handler = null;
}
} }
} }
class ProcessSetup extends Setup<Processor> { class ProcessSetup extends Setup<Processor> {
ProcessSetup(BlockingQueue<Processor> q, DataCacheHandler h) { ProcessSetup(BlockingQueue<Processor> q) {
super(new ProcessConsumer(q, h), new ProcessConsumer(q, h)); super(new ProcessConsumer(q), new ProcessConsumer(q));
} }
} }

View File

@ -5,16 +5,20 @@
package main.java.com.djrapitops.plan.queue.processing; package main.java.com.djrapitops.plan.queue.processing;
/** /**
* //TODO Class Javadoc Comment * Abstract class for processing different objects using Generics.
* *
* @author Rsl1122 * @author Rsl1122
*/ */
public abstract class Processor<T> { public abstract class Processor<T> {
private T processed; protected T object;
public Processor(T processed) { public Processor(T object) {
this.processed = processed; this.object = object;
} }
public abstract void process(); public abstract void process();
public T getObject() {
return object;
}
} }

View File

@ -152,14 +152,13 @@ public class DataCacheQueueTest {
List<Integer> errors = new ArrayList<>(); List<Integer> errors = new ArrayList<>();
handler.addToPool(new HandlingInfo(uuid1, InfoType.OTHER, 0) { handler.addToPool(new HandlingInfo(uuid1, InfoType.OTHER, 0) {
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
if (uData.equals(data1)) { if (uData.equals(data1)) {
uData.setName("TestSuccessful"); uData.setName("TestSuccessful");
processCalls.add(1); processCalls.add(1);
} else { } else {
errors.add(1); errors.add(1);
} }
return true;
} }
}); });
while (processCalls.size() < 1) { while (processCalls.size() < 1) {

View File

@ -33,7 +33,7 @@ public class ChatInfoTest {
UserData data = MockUtils.mockUser(); UserData data = MockUtils.mockUser();
String expected = "TestNicknameChatInfo"; String expected = "TestNicknameChatInfo";
ChatInfo i = new ChatInfo(data.getUuid(), expected); ChatInfo i = new ChatInfo(data.getUuid(), expected);
assertTrue("Didn't succeed", i.process(data)); i.process(data);
assertTrue("Didn't add nickname", data.getNicknames().contains(expected)); assertTrue("Didn't add nickname", data.getNicknames().contains(expected));
} }
} }

View File

@ -12,7 +12,6 @@ import org.junit.Test;
import test.java.utils.MockUtils; import test.java.utils.MockUtils;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/** /**
* @author Rsl1122 * @author Rsl1122
@ -39,7 +38,7 @@ public class DeathInfoTest {
public void testProcess() { public void testProcess() {
UserData data = MockUtils.mockUser(); UserData data = MockUtils.mockUser();
DeathInfo i = new DeathInfo(data.getUuid()); DeathInfo i = new DeathInfo(data.getUuid());
assertTrue(i.process(data)); i.process(data);
assertEquals(1, data.getDeaths()); assertEquals(1, data.getDeaths());
} }
} }

View File

@ -33,8 +33,8 @@ public class HandlingInfoTest {
UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db"); UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db");
HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) { HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) {
@Override @Override
public boolean process(UserData data) { public void process(UserData data) {
return true;
} }
}; };
assertEquals(uuid, i.getUuid()); assertEquals(uuid, i.getUuid());
@ -48,8 +48,8 @@ public class HandlingInfoTest {
UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db"); UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db");
HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) { HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) {
@Override @Override
public boolean process(UserData data) { public void process(UserData data) {
return true;
} }
}; };
assertEquals(InfoType.CHAT, i.getType()); assertEquals(InfoType.CHAT, i.getType());
@ -63,8 +63,8 @@ public class HandlingInfoTest {
UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db"); UUID uuid = UUID.fromString("45b0dfdb-f71d-4cf3-8c21-27c9d4c651db");
HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) { HandlingInfo i = new HandlingInfo(uuid, InfoType.CHAT, 10L) {
@Override @Override
public boolean process(UserData data) { public void process(UserData data) {
return true;
} }
}; };
assertEquals(10L, i.getTime()); assertEquals(10L, i.getTime());

View File

@ -1,34 +0,0 @@
package test.java.main.java.com.djrapitops.plan.data.handling.info;
import main.java.com.djrapitops.plan.data.UserData;
import main.java.com.djrapitops.plan.data.handling.info.*;
import main.java.com.djrapitops.plan.utilities.MiscUtils;
import org.junit.Test;
import test.java.utils.MockUtils;
import java.util.UUID;
import static org.junit.Assert.assertTrue;
public class InfoUuidCorrectionTest {
private final UserData wrong = MockUtils.mockUser2();
private final UUID test = MockUtils.getPlayerUUID();
@Test
public void testAllInfoBooleanReturn() {
long now = MiscUtils.getTime();
HandlingInfo[] h = new HandlingInfo[]{
new ChatInfo(test, ""),
new DeathInfo(test),
new KickInfo(test),
new KillInfo(test, now, null, ""),
new LoginInfo(test, now, null, false, "", "", 0, ""),
new LogoutInfo(test, now, false, "", null, ""),
new PlaytimeDependentInfo(test, InfoType.OTHER, now, "", ""),
new ReloadInfo(test, now, null, false, "", "", "")
};
for (HandlingInfo info : h) {
assertTrue(info.getClass().getSimpleName(), !info.process(wrong));
}
}
}

View File

@ -17,7 +17,6 @@ import test.java.utils.MockUtils;
import test.java.utils.TestInit; import test.java.utils.TestInit;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/** /**
* @author Rsl1122 * @author Rsl1122
@ -47,7 +46,7 @@ public class KickInfoTest {
public void testProcess() { public void testProcess() {
UserData data = MockUtils.mockUser(); UserData data = MockUtils.mockUser();
KickInfo i = new KickInfo(data.getUuid()); KickInfo i = new KickInfo(data.getUuid());
assertTrue(i.process(data)); i.process(data);
assertEquals(1, data.getTimesKicked()); assertEquals(1, data.getTimesKicked());
} }

View File

@ -20,8 +20,8 @@ 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.sql.SQLException; import java.sql.SQLException;
import java.util.UUID; import java.util.UUID;
@ -85,7 +85,7 @@ public class KillInfoTest {
UserData data = MockUtils.mockUser(); UserData data = MockUtils.mockUser();
Player dead = MockUtils.mockPlayer2(); Player dead = MockUtils.mockPlayer2();
KillInfo i = new KillInfo(data.getUuid(), 10L, dead, "TestWeapon"); KillInfo i = new KillInfo(data.getUuid(), 10L, dead, "TestWeapon");
assertTrue(i.process(data)); i.process(data);
KillData expected = new KillData(dead.getUniqueId(), 1, "TestWeapon", 10L); KillData expected = new KillData(dead.getUniqueId(), 1, "TestWeapon", 10L);
assertTrue("Didn't add the kill", data.getPlayerKills().size() == 1); assertTrue("Didn't add the kill", data.getPlayerKills().size() == 1);
KillData result = data.getPlayerKills().get(0); KillData result = data.getPlayerKills().get(0);
@ -102,7 +102,7 @@ public class KillInfoTest {
public void testProcessMobKill() throws SQLException { public void testProcessMobKill() throws SQLException {
UserData data = MockUtils.mockUser(); UserData data = MockUtils.mockUser();
KillInfo i = new KillInfo(data.getUuid(), 10L, null, "TestWeapon"); KillInfo i = new KillInfo(data.getUuid(), 10L, null, "TestWeapon");
assertTrue(i.process(data)); i.process(data);
assertTrue("Added a kill", data.getPlayerKills().isEmpty()); assertTrue("Added a kill", data.getPlayerKills().isEmpty());
assertEquals(1, data.getMobKills()); assertEquals(1, data.getMobKills());
} }

View File

@ -54,7 +54,7 @@ public class LoginInfoTest {
int loginTimes = data.getLoginTimes(); int loginTimes = data.getLoginTimes();
String nick = "TestProcessLoginInfo"; String nick = "TestProcessLoginInfo";
LoginInfo i = new LoginInfo(data.getUuid(), time, ip, true, nick, "CREATIVE", 1, "World"); LoginInfo i = new LoginInfo(data.getUuid(), time, ip, true, nick, "CREATIVE", 1, "World");
assertTrue(i.process(data)); i.process(data);
assertTrue("LastPlayed wrong: " + data.getLastPlayed(), data.getLastPlayed() == time); assertTrue("LastPlayed wrong: " + data.getLastPlayed(), data.getLastPlayed() == time);
assertTrue("Ip not added", data.getIps().contains(ip)); assertTrue("Ip not added", data.getIps().contains(ip));
assertTrue("Logintimes not +1", data.getLoginTimes() == loginTimes + 1); assertTrue("Logintimes not +1", data.getLoginTimes() == loginTimes + 1);

View File

@ -44,7 +44,7 @@ public class LogoutInfoTest {
long time = 20L; long time = 20L;
data.getGmTimes().setState("SURVIVAL"); data.getGmTimes().setState("SURVIVAL");
LogoutInfo i = new LogoutInfo(data.getUuid(), time, true, "CREATIVE", new SessionData(0, 1), "World"); LogoutInfo i = new LogoutInfo(data.getUuid(), time, true, "CREATIVE", new SessionData(0, 1), "World");
assertTrue(i.process(data)); i.process(data);
assertTrue("Last Played wrong", data.getLastPlayed() == 20L); assertTrue("Last Played wrong", data.getLastPlayed() == 20L);
assertTrue("Playtime wrong", data.getPlayTime() == 10L); assertTrue("Playtime wrong", data.getPlayTime() == 10L);
assertTrue("Banned wrong", data.isBanned()); assertTrue("Banned wrong", data.isBanned());

View File

@ -14,8 +14,8 @@ 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.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
@ -55,7 +55,7 @@ public class ReloadInfoTest {
int loginTimes = data.getLoginTimes(); int loginTimes = data.getLoginTimes();
String nick = "TestProcessLoginInfo"; String nick = "TestProcessLoginInfo";
ReloadInfo i = new ReloadInfo(data.getUuid(), time, ip, true, nick, "CREATIVE", "World"); ReloadInfo i = new ReloadInfo(data.getUuid(), time, ip, true, nick, "CREATIVE", "World");
assertTrue(i.process(data)); i.process(data);
assertTrue("LastPlayed wrong: " + data.getLastPlayed(), data.getLastPlayed() == time); assertTrue("LastPlayed wrong: " + data.getLastPlayed(), data.getLastPlayed() == time);
assertTrue("Ip not added", data.getIps().contains(ip)); assertTrue("Ip not added", data.getIps().contains(ip));
assertTrue("Login times is not the same", data.getLoginTimes() == loginTimes); assertTrue("Login times is not the same", data.getLoginTimes() == loginTimes);

View File

@ -79,8 +79,8 @@ public class RandomData {
for (int i = 0; i < 20; i++) { for (int i = 0; i < 20; i++) {
test.add(new HandlingInfo(UUID.randomUUID(), randomEnum(InfoType.class), r.nextLong()) { test.add(new HandlingInfo(UUID.randomUUID(), randomEnum(InfoType.class), r.nextLong()) {
@Override @Override
public boolean process(UserData uData) { public void process(UserData uData) {
return false;
} }
}); });
} }