124 lines
3.8 KiB
Java
124 lines
3.8 KiB
Java
/*
|
|
* To change this license header, choose License Headers in Project Properties.
|
|
* To change this template file, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package test.java.main.java.com.djrapitops.plan.data.handling.info;
|
|
|
|
import java.sql.SQLException;
|
|
import main.java.com.djrapitops.plan.Plan;
|
|
import main.java.com.djrapitops.plan.data.DemographicsData;
|
|
import main.java.com.djrapitops.plan.data.KillData;
|
|
import main.java.com.djrapitops.plan.data.UserData;
|
|
import main.java.com.djrapitops.plan.data.handling.info.KillInfo;
|
|
import main.java.com.djrapitops.plan.database.Database;
|
|
import main.java.com.djrapitops.plan.database.databases.SQLiteDB;
|
|
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import org.junit.After;
|
|
import static org.junit.Assert.*;
|
|
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.TestInit;
|
|
import static org.powermock.api.mockito.PowerMockito.when;
|
|
|
|
/**
|
|
*
|
|
* @author Rsl1122
|
|
*/
|
|
@RunWith(PowerMockRunner.class)
|
|
@PrepareForTest(JavaPlugin.class)
|
|
public class KillInfoTest {
|
|
|
|
private Database db;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public KillInfoTest() {
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
@Before
|
|
public void setUp() {
|
|
TestInit t = new TestInit();
|
|
assertTrue("Not set up", t.setUp());
|
|
Plan plan = t.getPlanMock();
|
|
db = new SQLiteDB(plan, "debug" + MiscUtils.getTime()) {
|
|
@Override
|
|
public void startConnectionPingTask(Plan plugin) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public int getUserId(String uuid) {
|
|
return 1;
|
|
}
|
|
};
|
|
when(plan.getDB()).thenReturn(db);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @throws SQLException
|
|
*/
|
|
@After
|
|
public void tearDown() throws SQLException {
|
|
db.close();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @throws SQLException
|
|
*/
|
|
@Test
|
|
public void testProcess() throws SQLException {
|
|
UserData data = new UserData(MockUtils.mockPlayer(), new DemographicsData());
|
|
Player dead = MockUtils.mockPlayer2();
|
|
// db.saveUserData(dead.getUniqueId(), new UserData(dead, new DemographicsData()));
|
|
KillInfo i = new KillInfo(data.getUuid(), 10L, dead, "TestWeapon");
|
|
assertTrue(i.process(data));
|
|
KillData expected = new KillData(dead.getUniqueId(), 1, "TestWeapon", 10L);
|
|
assertTrue("Didn't add the kill", data.getPlayerKills().size() == 1);
|
|
KillData result = data.getPlayerKills().get(0);
|
|
assertEquals(expected.getDate(), result.getDate());
|
|
assertEquals(expected.getVictim(), result.getVictim());
|
|
assertEquals(expected.getVictimUserID(), result.getVictimUserID());
|
|
assertEquals(expected.getWeapon(), result.getWeapon());
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @throws SQLException
|
|
*/
|
|
@Test
|
|
public void testProcessMobKill() throws SQLException {
|
|
UserData data = new UserData(MockUtils.mockPlayer(), new DemographicsData());
|
|
KillInfo i = new KillInfo(data.getUuid(), 10L, null, "TestWeapon");
|
|
assertTrue(i.process(data));
|
|
assertTrue("Added a kill", data.getPlayerKills().isEmpty());
|
|
assertEquals(1, data.getMobKills());
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @throws SQLException
|
|
*/
|
|
@Test
|
|
public void testProcessMobKillWrongUUID() throws SQLException {
|
|
UserData data = new UserData(MockUtils.mockPlayer(), new DemographicsData());
|
|
KillInfo i = new KillInfo(null, 10L, null, "TestWeapon");
|
|
assertTrue(!i.process(data));
|
|
assertTrue("Added a kill", data.getPlayerKills().isEmpty());
|
|
assertEquals(0, data.getMobKills());
|
|
}
|
|
|
|
}
|