refactor: split MineCommands into separate command classes
This commit is contained in:
parent
d317d0b1b0
commit
2dc25432fd
7 changed files with 464 additions and 383 deletions
|
|
@ -17,124 +17,124 @@ import java.util.Collection;
|
|||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* Unit tests for MineCommands class.
|
||||
* Unit tests for AdminCommands class.
|
||||
*/
|
||||
class MineCommandsTest {
|
||||
|
||||
class AdminCommandsTest {
|
||||
|
||||
@Mock
|
||||
private LoMinesPlugin plugin;
|
||||
|
||||
|
||||
@Mock
|
||||
private Mines mines;
|
||||
|
||||
|
||||
@Mock
|
||||
private CommandSender sender;
|
||||
|
||||
|
||||
@Mock
|
||||
private Mine mine;
|
||||
|
||||
private MineCommands commands;
|
||||
|
||||
|
||||
private AdminCommands commands;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
when(plugin.getMines()).thenReturn(mines);
|
||||
commands = new MineCommands(plugin);
|
||||
commands = new AdminCommands(plugin);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testCreateMineSuccess() throws IOException {
|
||||
String mineName = "testmine";
|
||||
|
||||
|
||||
commands.create(sender, mineName);
|
||||
|
||||
|
||||
verify(mines).create(mineName);
|
||||
verify(sender, times(2)).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testCreateMineAlreadyExists() throws IOException {
|
||||
String mineName = "existing";
|
||||
doThrow(new IllegalArgumentException("Mine already exists")).when(mines).create(mineName);
|
||||
|
||||
|
||||
commands.create(sender, mineName);
|
||||
|
||||
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testDeleteMineSuccess() throws IOException {
|
||||
String mineName = "testmine";
|
||||
|
||||
|
||||
commands.delete(sender, mineName);
|
||||
|
||||
|
||||
verify(mines).delete(mineName);
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testDeleteMineNotFound() throws IOException {
|
||||
String mineName = "nonexistent";
|
||||
doThrow(new IllegalArgumentException("Mine not found")).when(mines).delete(mineName);
|
||||
|
||||
|
||||
commands.delete(sender, mineName);
|
||||
|
||||
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testResetMineSuccess() {
|
||||
String mineName = "testmine";
|
||||
when(mines.get(mineName)).thenReturn(mine);
|
||||
|
||||
|
||||
commands.reset(sender, mineName, false);
|
||||
|
||||
|
||||
verify(mine).reset(false);
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testResetMineSilent() {
|
||||
String mineName = "testmine";
|
||||
when(mines.get(mineName)).thenReturn(mine);
|
||||
|
||||
|
||||
commands.reset(sender, mineName, true);
|
||||
|
||||
|
||||
verify(mine).reset(true);
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testResetMineNotFound() {
|
||||
String mineName = "nonexistent";
|
||||
when(mines.get(mineName)).thenThrow(new IllegalArgumentException("Mine not found"));
|
||||
|
||||
|
||||
commands.reset(sender, mineName, false);
|
||||
|
||||
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testReloadSuccess() throws IOException {
|
||||
Collection<Mine> mineList = Arrays.asList(mine, mine);
|
||||
when(mines.getAll()).thenReturn(mineList);
|
||||
|
||||
|
||||
commands.reload(sender);
|
||||
|
||||
|
||||
verify(mine, times(2)).stop();
|
||||
verify(mines).loadAll();
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testListMinesEmpty() {
|
||||
when(mines.getAll()).thenReturn(Arrays.asList());
|
||||
|
||||
|
||||
commands.list(sender);
|
||||
|
||||
|
||||
verify(sender).sendMessage(any(Component.class));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testListMinesWithData() {
|
||||
when(mines.getAll()).thenReturn(Arrays.asList(mine, mine));
|
||||
|
|
@ -142,9 +142,9 @@ class MineCommandsTest {
|
|||
when(mine.getBlocks()).thenReturn(100);
|
||||
when(mine.getTotalVolume()).thenReturn(200);
|
||||
when(mine.getPercentFilled()).thenReturn(50.0);
|
||||
|
||||
|
||||
commands.list(sender);
|
||||
|
||||
|
||||
verify(sender, atLeast(3)).sendMessage(any(Component.class));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue