diff --git a/pom.xml b/pom.xml
index 570a9b0..61de144 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,20 +15,30 @@
6.9.7.1
3.2.9
+ 6.0.0
+
+ 3.19.0
+ 1.2.11
+ 1.19.0
+ 4.33.0
-
org.telegram
telegrambots
-
com.discord4j
discord4j-core
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
@@ -45,7 +55,36 @@
${discord4j.version}
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit-jupiter.version}
+ test
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+ io.projectreactor.netty
+ reactor-netty-http
+ ${reactor-netty-http.version}
+
+
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+
+
+
+ com.google.protobuf
+ protobuf-java
+ ${protobuf-java.version}
+
-
\ No newline at end of file
diff --git a/src/main/java/ru/urfu/Application.java b/src/main/java/ru/urfu/Application.java
index 0e9049b..17398e4 100644
--- a/src/main/java/ru/urfu/Application.java
+++ b/src/main/java/ru/urfu/Application.java
@@ -6,13 +6,15 @@
public class Application {
public static void main(String[] args) {
+ Handler handler = new Handler();
+
String telegramBotName = System.getenv("telegram_botName");
String telegramToken = System.getenv("telegram_token");
- new TelegramBot(telegramBotName, telegramToken)
+ new TelegramBot(telegramBotName, telegramToken, handler)
.start();
String discordToken = System.getenv("discord_token");
- new DiscordBot(discordToken)
+ new DiscordBot(discordToken, handler)
.start();
/*
@@ -20,5 +22,4 @@ public static void main(String[] args) {
и все должны работать одинаково
*/
}
-
}
diff --git a/src/main/java/ru/urfu/DiscordBot.java b/src/main/java/ru/urfu/DiscordBot.java
index b7eccf5..6a1dd9a 100644
--- a/src/main/java/ru/urfu/DiscordBot.java
+++ b/src/main/java/ru/urfu/DiscordBot.java
@@ -16,8 +16,11 @@ public class DiscordBot {
private GatewayDiscordClient client;
- public DiscordBot(String token) {
+ private final Handler handler;
+
+ public DiscordBot(String token, Handler handler) {
this.token = token;
+ this.handler = handler;
}
/**
@@ -40,7 +43,11 @@ public void start() {
if (isUser) {
String chatId = eventMessage.getChannelId().asString();
String messageFromUser = eventMessage.getContent();
- // TODO обработайте сообщение от пользователя (messageFromUser)
+ String reply = handler.handle(messageFromUser);
+
+ if (reply != null && !reply.isEmpty()) {
+ sendMessage(chatId, reply);
+ }
}
});
System.out.println("Discord бот запущен");
diff --git a/src/main/java/ru/urfu/Handler.java b/src/main/java/ru/urfu/Handler.java
new file mode 100644
index 0000000..b0b191a
--- /dev/null
+++ b/src/main/java/ru/urfu/Handler.java
@@ -0,0 +1,13 @@
+package ru.urfu;
+
+/**
+ * Обработчик сообщений от пользователя
+ */
+public class Handler {
+ /**
+ * Обработать сообщение от пользователя
+ */
+ public String handle(String messageFromUser) {
+ return "Ваше сообщение: '" + messageFromUser + "'";
+ }
+}
diff --git a/src/main/java/ru/urfu/TelegramBot.java b/src/main/java/ru/urfu/TelegramBot.java
index 95f0403..76df107 100644
--- a/src/main/java/ru/urfu/TelegramBot.java
+++ b/src/main/java/ru/urfu/TelegramBot.java
@@ -15,9 +15,12 @@ public class TelegramBot extends TelegramLongPollingBot {
private final String telegramBotName;
- public TelegramBot(String telegramBotName, String token) {
+ private final Handler handler;
+
+ public TelegramBot(String telegramBotName, String token, Handler handler) {
super(token);
this.telegramBotName = telegramBotName;
+ this.handler = handler;
}
/**
@@ -39,7 +42,11 @@ public void onUpdateReceived(Update update) {
Message updateMessage = update.getMessage();
Long chatId = updateMessage.getChatId();
String messageFromUser = updateMessage.getText();
- // TODO обработайте сообщение от пользователя (messageFromUser)
+ String reply = handler.handle(messageFromUser);
+
+ if (reply != null && !reply.isEmpty()) {
+ sendMessage(chatId.toString(), reply);
+ }
}
}
diff --git a/src/test/java/HandlerTest.java b/src/test/java/HandlerTest.java
new file mode 100644
index 0000000..7d127a1
--- /dev/null
+++ b/src/test/java/HandlerTest.java
@@ -0,0 +1,34 @@
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import ru.urfu.Handler;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * Тесты для класса MarkHandler
+ */
+class HandlerTest {
+ private Handler handler;
+
+ @BeforeEach
+ void setUp() {
+ handler = new Handler();
+ }
+ /**
+ * Тестирует метод handle класса MarkHandler на корректность возвращаемого ответа
+ * в случае, когда входящее сообщение не пустое.
+ */
+ @Test
+ void handleReturnsExpectedResponseWithInputMessage() {
+ assertEquals("Ваше сообщение: 'привет'", handler.handle("привет"));
+ }
+
+ /**
+ * Тестирует метод handle класса MarkHandler на корректность возвращаемого ответа
+ * в случае, когда входящее сообщение пустое.
+ */
+ @Test
+ void handleReturnsExpectedResponseWithoutInputMessage() {
+ assertEquals("Ваше сообщение: ''", handler.handle(""));
+ }
+}
\ No newline at end of file