#923 Create /authme purgeplayer command

- Create command to purge a specific player name
- Update docs
This commit is contained in:
ljacqu
2017-04-29 18:31:37 +02:00
parent 88d839cab4
commit 578f63b944
13 changed files with 211 additions and 27 deletions
@@ -0,0 +1,91 @@
package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.service.BukkitService;
import fr.xephi.authme.task.purge.PurgeExecutor;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import static fr.xephi.authme.TestHelper.runOptionallyAsyncTask;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static org.hamcrest.Matchers.containsString;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.hamcrest.MockitoHamcrest.argThat;
/**
* Test for {@link PurgePlayerCommand}.
*/
@RunWith(MockitoJUnitRunner.class)
public class PurgePlayerCommandTest {
@InjectMocks
private PurgePlayerCommand command;
@Mock
private BukkitService bukkitService;
@Mock
private PurgeExecutor purgeExecutor;
@Mock
private DataSource dataSource;
@Test
public void shouldNotExecutePurgeForRegisteredPlayer() {
// given
String name = "Bobby";
given(dataSource.isAuthAvailable(name)).willReturn(true);
CommandSender sender = mock(CommandSender.class);
// when
command.executeCommand(sender, singletonList(name));
runOptionallyAsyncTask(bukkitService);
// then
verify(sender).sendMessage(argThat(containsString("This player is still registered")));
verifyZeroInteractions(purgeExecutor);
}
@Test
public void shouldExecutePurge() {
// given
String name = "Frank";
given(dataSource.isAuthAvailable(name)).willReturn(false);
OfflinePlayer player = mock(OfflinePlayer.class);
given(bukkitService.getOfflinePlayer(name)).willReturn(player);
CommandSender sender = mock(CommandSender.class);
// when
command.executeCommand(sender, singletonList(name));
runOptionallyAsyncTask(bukkitService);
// then
verify(dataSource).isAuthAvailable(name);
verify(purgeExecutor).executePurge(singletonList(player), singletonList(name.toLowerCase()));
}
@Test
public void shouldExecutePurgeOfRegisteredPlayer() {
// given
String name = "GhiJKlmn7";
OfflinePlayer player = mock(OfflinePlayer.class);
given(bukkitService.getOfflinePlayer(name)).willReturn(player);
CommandSender sender = mock(CommandSender.class);
// when
command.executeCommand(sender, asList(name, "force"));
runOptionallyAsyncTask(bukkitService);
// then
verify(purgeExecutor).executePurge(singletonList(player), singletonList(name.toLowerCase()));
}
}