Skip to content

Commit

Permalink
Implement getOfflinePlayerIfCached with tests (#947)
Browse files Browse the repository at this point in the history
* Implement getOfflinePlayerIfCached with tests

* Fix formatting

* Fix more formatting
  • Loading branch information
Thorinwasher committed Jan 29, 2024
1 parent 4bfc7e3 commit 001f91a
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 16 deletions.
35 changes: 22 additions & 13 deletions src/main/java/be/seeseemelk/mockbukkit/MockPlayerList.java
Original file line number Diff line number Diff line change
Expand Up @@ -356,21 +356,11 @@ public PlayerMock getPlayer(int index)
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name)
{
Player player = getPlayer(name);

if (player != null)
{
return player;
}

for (OfflinePlayer offlinePlayer : this.offlinePlayers)
OfflinePlayer offlinePlayer = getOfflinePlayerIfCached(name);
if (offlinePlayer != null)
{
if (name.equals(offlinePlayer.getName()))
{
return offlinePlayer;
}
return offlinePlayer;
}

return new OfflinePlayerMock(name);
}

Expand Down Expand Up @@ -438,4 +428,23 @@ public void removeOperator(UUID operator)
this.operators.remove(operator);
}

public @Nullable OfflinePlayer getOfflinePlayerIfCached(String name)
{
Player player = getPlayer(name);

if (player != null)
{
return player;
}

for (OfflinePlayer offlinePlayer : this.offlinePlayers)
{
if (name.equals(offlinePlayer.getName()))
{
return offlinePlayer;
}
}
return null;
}

}
3 changes: 1 addition & 2 deletions src/main/java/be/seeseemelk/mockbukkit/ServerMock.java
Original file line number Diff line number Diff line change
Expand Up @@ -588,8 +588,7 @@ public boolean removeWorld(WorldMock world)
@Override
public @Nullable OfflinePlayer getOfflinePlayerIfCached(@NotNull String name)
{
//TODO Auto-generated method stub
throw new UnimplementedOperationException();
return playerList.getOfflinePlayerIfCached(name);
}

@Override
Expand Down
26 changes: 25 additions & 1 deletion src/test/java/be/seeseemelk/mockbukkit/ServerMockTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
Expand Down Expand Up @@ -1647,6 +1646,31 @@ void testGetIPBans()

}

@Test
void testGetOfflinePlayerIfCached_notRegistered()
{
String name = "headstalls";
OfflinePlayer offlinePlayer = server.getOfflinePlayerIfCached(name);
assertNull(offlinePlayer);
}

@Test
void testGetOfflinePlayerIfCached_offlinePlayerRegistered()
{
PlayerMock playerMock = server.addPlayer("CapitalizedName");
playerMock.disconnect();
OfflinePlayer offlinePlayer = server.getOfflinePlayerIfCached(playerMock.getName());
assertEquals(playerMock, offlinePlayer);
}

@Test
void testGetOfflinePlayerIfCached_playerRegistered()
{
PlayerMock playerMock = server.addPlayer("CapitalizedName");
OfflinePlayer offlinePlayer = server.getOfflinePlayerIfCached(playerMock.getName());
assertEquals(playerMock, offlinePlayer);
}

}

class TestRecipe implements Recipe
Expand Down

0 comments on commit 001f91a

Please sign in to comment.