diff --git a/jtelegrambotapi-core/pom.xml b/jtelegrambotapi-core/pom.xml
index ddb939bc2..2abf92482 100644
--- a/jtelegrambotapi-core/pom.xml
+++ b/jtelegrambotapi-core/pom.xml
@@ -28,6 +28,46 @@
com.squareup.okhttp3
okhttp
+
+
+
+
+ org.mockito
+ mockito-core
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+
+
+ org.junit.platform
+ junit-platform-surefire-provider
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ org.junit.platform
+ junit-platform-surefire-provider
+ ${dependency.junit-platform-surefire-provider.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${dependency.junit.version}
+
+
+
+
+
+
diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java
index 633e91636..ddebe8cc6 100644
--- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java
+++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java
@@ -1,13 +1,19 @@
package com.jtelegram.api.message;
-import com.google.gson.*;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
import com.jtelegram.api.chat.Chat;
+import com.jtelegram.api.requests.message.DeleteMessage;
+import com.jtelegram.api.requests.message.ForwardMessage;
+import com.jtelegram.api.requests.message.edit.EditMessageReplyMarkup;
import com.jtelegram.api.user.User;
+import java.lang.reflect.Type;
import lombok.Getter;
import lombok.ToString;
-import java.lang.reflect.Type;
-
@Getter
@ToString
public abstract class Message {
@@ -32,6 +38,33 @@ public User getSender() {
return from;
}
+ /**
+ * Creates a request builder for editing the reply markup of this message.
+ *
+ * @return the request builder
+ */
+ public EditMessageReplyMarkup.EditMessageReplyMarkupBuilder toEditReplyMarkupRequest() {
+ return EditMessageReplyMarkup.forMessage(this);
+ }
+
+ /**
+ * Creates a request builder for forwarding this message to another chat.
+ *
+ * @return the request builder
+ */
+ public ForwardMessage.ForwardMessageBuilder toForwardRequest() {
+ return ForwardMessage.forMessage(this);
+ }
+
+ /**
+ * Creates a request builder for deleting this message.
+ *
+ * @return the request builder
+ */
+ public DeleteMessage.DeleteMessageBuilder toDeleteRequest() {
+ return DeleteMessage.forMessage(this);
+ }
+
public static class Deserializer implements JsonDeserializer {
@Override
public Message deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException {
diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java
index e8298361a..0b4dedb34 100644
--- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java
+++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java
@@ -19,8 +19,8 @@ public enum MessageType {
VOICE(VoiceMessage.class, VoiceMessageEvent.class),
VIDEO_NOTE(VideoNoteMessage.class, VideoNoteMessageEvent.class),
CONTACT(ContactMessage.class, ContactMessageEvent.class),
- LOCATION(LocationMessage.class, LocationMessageEvent.class),
VENUE(VenueMessage.class, VenueMessageEvent.class),
+ LOCATION(LocationMessage.class, LocationMessageEvent.class),
INVOICE(InvoiceMessage.class, InvoiceMessageEvent.class),
SUCCESSFUL_PAYMENT(SuccessfulPaymentMessage.class, SuccessfulPaymentEvent.class),
diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java
index e47da9a13..bfd3b9013 100644
--- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java
+++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java
@@ -2,6 +2,8 @@
import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.Audio;
+import com.jtelegram.api.requests.message.edit.EditMessageCaption;
+import com.jtelegram.api.requests.message.edit.EditMessageMedia;
import lombok.Getter;
import lombok.ToString;
@@ -14,4 +16,22 @@ public class AudioMessage extends CaptionableMessage