#1448 Create AuthMePlayer to get player data from API with (#2000)

* #1448 Create AuthMePlayer to get player data from API with

* #1448 Add tests for new API method & AuthMePlayer

* #1448 Create AuthMePlayer to get player data from API with
- Use Optional for all values that may be null

* #1448 Add comment that AuthMePlayer data does not update itself
This commit is contained in:
ljacqu
2020-02-12 20:06:42 +01:00
committed by GitHub
parent 214f0b5587
commit f7911edd60
5 changed files with 291 additions and 33 deletions
@@ -28,15 +28,16 @@ import java.time.Instant;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import static fr.xephi.authme.IsEqualByReflectionMatcher.hasEqualValuesOnAllFields;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.Matchers.sameInstance;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.given;
@@ -512,6 +513,36 @@ public class AuthMeApiTest {
assertThat(countryName, equalTo("Syldavia"));
}
@Test
public void shouldReturnAuthMePlayerInfo() {
// given
PlayerAuth auth = PlayerAuth.builder()
.name("bobb")
.realName("Bobb")
.registrationDate(1433166082000L)
.build();
given(dataSource.getAuth("bobb")).willReturn(auth);
// when
Optional<AuthMePlayer> result = api.getPlayerInfo("bobb");
// then
AuthMePlayer playerInfo = result.get();
assertThat(playerInfo.getName(), equalTo("Bobb"));
assertThat(playerInfo.getRegistrationDate(), equalTo(Instant.ofEpochMilli(1433166082000L)));
}
@Test
public void shouldReturnNullForNonExistentAuth() {
// given / when
Optional<AuthMePlayer> result = api.getPlayerInfo("doesNotExist");
// then
assertThat(result.isPresent(), equalTo(false));
verify(playerCache).getAuth("doesNotExist");
verify(dataSource).getAuth("doesNotExist");
}
private static Player mockPlayerWithName(String name) {
Player player = mock(Player.class);
given(player.getName()).willReturn(name);