|
@@ -644,6 +644,36 @@ public class FlatFileDatabaseManagerTest {
|
|
|
assertEquals(db.getDatabaseType(), DatabaseType.FLATFILE);
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testReadRank() {
|
|
|
+ //This is an empty DB
|
|
|
+ assertNotNull(db);
|
|
|
+ String rankBoyName = "rankBoy";
|
|
|
+ UUID rankBoyUUID = new UUID(1337, 1337);
|
|
|
+ String rankGirlName = "rankGirl";
|
|
|
+ UUID rankGirlUUID = new UUID(7331, 7331);
|
|
|
+
|
|
|
+ PlayerProfile rankGirlProfile = addPlayerProfileWithLevelsAndSave(rankGirlName, rankGirlUUID, 100); //Rank 1
|
|
|
+ PlayerProfile rankBoyProfile = addPlayerProfileWithLevelsAndSave(rankBoyName, rankBoyUUID, 10); //Rank 2
|
|
|
+
|
|
|
+ assertEquals(LeaderboardStatus.UPDATED, db.updateLeaderboards());
|
|
|
+ Map<PrimarySkillType, Integer> rankGirlPositions = db.readRank(rankGirlName);
|
|
|
+ Map<PrimarySkillType, Integer> rankBoyPositions = db.readRank(rankBoyName);
|
|
|
+
|
|
|
+ for(PrimarySkillType primarySkillType : PrimarySkillType.values()) {
|
|
|
+ if(primarySkillType.isChildSkill()) {
|
|
|
+ assertNull(rankBoyPositions.get(primarySkillType));
|
|
|
+ assertNull(rankGirlPositions.get(primarySkillType));
|
|
|
+ } else {
|
|
|
+ assertEquals(1, rankGirlPositions.get(primarySkillType));
|
|
|
+ assertEquals(2, rankBoyPositions.get(primarySkillType));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ assertEquals(1, db.readRank(rankGirlName).get(null)); //Girl should be position 1
|
|
|
+ assertEquals(2, db.readRank(rankBoyName).get(null)); //Boy should be position 2
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testLoadFromFile() {
|
|
|
ClassLoader classLoader = getClass().getClassLoader();
|
|
@@ -708,6 +738,38 @@ public class FlatFileDatabaseManagerTest {
|
|
|
return splitDataList;
|
|
|
}
|
|
|
|
|
|
+ private @NotNull PlayerProfile addPlayerProfileWithLevelsAndSave(String playerName, UUID uuid, int levels) {
|
|
|
+ assertNotNull(db);
|
|
|
+ assertFalse(db.loadPlayerProfile(uuid).isLoaded());
|
|
|
+
|
|
|
+ db.newUser(playerName, uuid);
|
|
|
+ PlayerProfile leveledProfile = db.loadPlayerProfile(uuid);
|
|
|
+
|
|
|
+ assertTrue(leveledProfile.isLoaded());
|
|
|
+ assertEquals(playerName, leveledProfile.getPlayerName());
|
|
|
+ assertEquals(uuid, leveledProfile.getUniqueId());
|
|
|
+
|
|
|
+ for(PrimarySkillType primarySkillType : PrimarySkillType.values()) {
|
|
|
+ if(SkillTools.isChildSkill(primarySkillType))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ leveledProfile.modifySkill(primarySkillType, levels); //TODO: This method also resets XP, not cool
|
|
|
+ }
|
|
|
+
|
|
|
+ db.saveUser(leveledProfile);
|
|
|
+ leveledProfile = db.loadPlayerProfile(uuid);
|
|
|
+
|
|
|
+ for(PrimarySkillType primarySkillType : PrimarySkillType.values()) {
|
|
|
+ if(SkillTools.isChildSkill(primarySkillType)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ assertEquals(levels, leveledProfile.getSkillLevel(primarySkillType));
|
|
|
+ }
|
|
|
+
|
|
|
+ return leveledProfile;
|
|
|
+ }
|
|
|
+
|
|
|
private void replaceDataInFile(@NotNull FlatFileDatabaseManager flatFileDatabaseManager, @NotNull String[] dataEntries) {
|
|
|
String filePath = flatFileDatabaseManager.getUsersFile().getAbsolutePath();
|
|
|
BufferedReader in = null;
|