Add tests for delete session command.
This is just a single sunshine scenario test because that's all the command supports right now. Issues #2 and #3 highlight some of the problems with this command, and when those issues are tackled, tests should be introduced along with the fixes.
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
package org.mobarena.stats.command;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.Messenger;
|
||||||
|
import com.garbagemule.MobArena.framework.ArenaMaster;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mobarena.stats.MobArenaStats;
|
||||||
|
import org.mobarena.stats.store.StatsStore;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.*;
|
||||||
|
import static org.hamcrest.MatcherAssert.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
class DeleteSessionStatsCommandTest {
|
||||||
|
|
||||||
|
MobArenaStats plugin;
|
||||||
|
DeleteSessionStatsCommand subject;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setup() {
|
||||||
|
plugin = mock(MobArenaStats.class);
|
||||||
|
subject = new DeleteSessionStatsCommand(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void success() {
|
||||||
|
String id = "cafebabe-ea75-dead-beef-deadcafebabe";
|
||||||
|
ArenaMaster am = mock(ArenaMaster.class);
|
||||||
|
CommandSender sender = mock(CommandSender.class);
|
||||||
|
String[] args = {id};
|
||||||
|
Messenger messenger = mock(Messenger.class);
|
||||||
|
StatsStore store = mock(StatsStore.class);
|
||||||
|
when(am.getGlobalMessenger()).thenReturn(messenger);
|
||||||
|
when(plugin.getStatsStore()).thenReturn(store);
|
||||||
|
when(plugin.getAsyncExecutor()).thenReturn(Runnable::run);
|
||||||
|
|
||||||
|
boolean result = subject.execute(am, sender, args);
|
||||||
|
|
||||||
|
assertThat(result, equalTo(true));
|
||||||
|
verify(store).delete(UUID.fromString(id));
|
||||||
|
verify(messenger).tell(eq(sender), contains("deleted"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user