Create tests for CommandRegistry
This commit is contained in:
parent
30fa92cd8b
commit
323d7607d6
@ -0,0 +1,42 @@
|
||||
package org.telegram.telegrambots.extensions.bots.commandbot.commands;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.bots.AbsSender;
|
||||
|
||||
class CommandRegistryTest {
|
||||
|
||||
@Test
|
||||
void should_executes_commandWithBotUsername() {
|
||||
CommandRegistry registry = new CommandRegistry(true, () -> "BotUsername");
|
||||
IBotCommand command = Mockito.mock(IBotCommand.class);
|
||||
Mockito.when(command.getCommandIdentifier()).thenReturn("command");
|
||||
registry.register(command);
|
||||
AbsSender absSender = Mockito.mock(AbsSender.class);
|
||||
Message message = Mockito.mock(Message.class);
|
||||
Mockito.when(message.hasText()).thenReturn(true);
|
||||
Mockito.when(message.getText()).thenReturn("/command@BotUsername I'll be test!");
|
||||
Assertions.assertTrue(registry.executeCommand(absSender, message), "Command must be executed");
|
||||
Mockito.verify(message).hasText();
|
||||
Mockito.verify(message).getText();
|
||||
Mockito.verify(command).processMessage(
|
||||
Mockito.same(absSender), Mockito.same(message), Mockito.eq(new String[]{"I'll", "be", "test!"}));
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_throws_NPE_on_executes_commandWithNullableBotUsername() {
|
||||
CommandRegistry registry = new CommandRegistry(true, () -> null);
|
||||
IBotCommand command = Mockito.mock(IBotCommand.class);
|
||||
Mockito.when(command.getCommandIdentifier()).thenReturn("command");
|
||||
registry.register(command);
|
||||
AbsSender absSender = Mockito.mock(AbsSender.class);
|
||||
Message message = Mockito.mock(Message.class);
|
||||
Mockito.when(message.hasText()).thenReturn(true);
|
||||
Mockito.when(message.getText()).thenReturn("/command@BotUsername ignore");
|
||||
NullPointerException exception = Assertions.assertThrows(
|
||||
NullPointerException.class, () -> registry.executeCommand(absSender, message), "Bot username is null");
|
||||
Assertions.assertEquals("Bot username must not be null", exception.getMessage(), "Invalid exception message");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user