Skip to content

Commit 393cc7e

Browse files
committed
Add optional fileName for SendDocument
1 parent efd5468 commit 393cc7e

File tree

3 files changed

+65
-6
lines changed

3 files changed

+65
-6
lines changed

src/main/java/com/pengrad/telegrambot/request/BaseRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
abstract public class BaseRequest<T extends BaseRequest, R extends BaseResponse> {
1414

1515
@SuppressWarnings("unchecked")
16-
private final T thisAsT = (T) this;
16+
protected final T thisAsT = (T) this;
1717

1818
private final Class<? extends R> responseClass;
1919
private final Map<String, Object> parameters;

src/main/java/com/pengrad/telegrambot/request/SendDocument.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
*/
99
public class SendDocument extends AbstractMultipartRequest<SendDocument> {
1010

11+
private String fileName;
12+
1113
public SendDocument(Object chatId, String document) {
1214
super(chatId, document);
1315
}
1416

1517
public SendDocument(Object chatId, File document) {
1618
super(chatId, document);
19+
fileName = document.getName();
1720
}
1821

1922
public SendDocument(Object chatId, byte[] document) {
@@ -24,14 +27,23 @@ public SendDocument caption(String caption) {
2427
return add("caption", caption);
2528
}
2629

30+
public SendDocument fileName(String fileName) {
31+
this.fileName = fileName;
32+
return thisAsT;
33+
}
34+
2735
@Override
2836
protected String getFileParamName() {
2937
return "document";
3038
}
3139

3240
@Override
3341
public String getFileName() {
34-
return ContentTypes.DOC_FILE_NAME;
42+
if (fileName != null && !fileName.isEmpty()) {
43+
return fileName;
44+
} else {
45+
return ContentTypes.DOC_FILE_NAME;
46+
}
3547
}
3648

3749
@Override

src/test/java/com/pengrad/telegrambot/TelegramBotTest.java

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
import com.pengrad.telegrambot.model.ChatMember;
44
import com.pengrad.telegrambot.model.InlineQuery;
5+
import com.pengrad.telegrambot.model.Message;
56
import com.pengrad.telegrambot.model.Update;
6-
import com.pengrad.telegrambot.model.request.InlineKeyboardButton;
7-
import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
8-
import com.pengrad.telegrambot.model.request.InlineQueryResult;
9-
import com.pengrad.telegrambot.model.request.InlineQueryResultArticle;
7+
import com.pengrad.telegrambot.model.request.*;
108
import com.pengrad.telegrambot.request.*;
119
import com.pengrad.telegrambot.response.*;
1210
import org.junit.Test;
1311

12+
import java.io.File;
1413
import java.io.FileInputStream;
1514
import java.io.IOException;
15+
import java.nio.file.Files;
1616
import java.util.Collections;
1717
import java.util.List;
1818
import java.util.Properties;
@@ -121,4 +121,51 @@ public void getChatMembersCount() {
121121
BaseResponse response = bot.execute(new GetChatMembersCount(chatId));
122122
System.out.println(response);
123123
}
124+
125+
@Test
126+
public void sendAudio() {
127+
SendAudio request = new SendAudio(chatId, new File(audioFile));
128+
SendResponse sendResponse = bot.execute(request);
129+
Message message = sendResponse.message();
130+
MessageTest.checkAudioMessage(message);
131+
}
132+
133+
@Test
134+
public void sendDocument() {
135+
SendDocument request = new SendDocument(chatId, new File(docFile)).caption("caption");
136+
SendResponse sendResponse = bot.execute(request);
137+
Message message = sendResponse.message();
138+
MessageTest.checkDocumentMessage(message);
139+
}
140+
141+
@Test
142+
public void sendPhoto() {
143+
SendPhoto request = new SendPhoto(chatId, new File(imagefile)).caption("caption");
144+
SendResponse sendResponse = bot.execute(request);
145+
Message message = sendResponse.message();
146+
MessageTest.checkPhotoMessage(message);
147+
}
148+
149+
@Test
150+
public void sendSticker() {
151+
SendResponse sendResponse = bot.execute(new SendSticker(chatId, stickerId));
152+
Message message = sendResponse.message();
153+
MessageTest.checkStickerMessage(message);
154+
}
155+
156+
@Test
157+
public void sendVideo() {
158+
SendResponse sendResponse = bot.execute(new SendVideo(chatId, new File(videoFile)));
159+
Message message = sendResponse.message();
160+
MessageTest.checkVideoMessage(message);
161+
}
162+
163+
@Test
164+
public void sendVoice() throws IOException {
165+
byte[] array = Files.readAllBytes(new File(audioFile).toPath());
166+
SendVoice request = new SendVoice(chatId, array);
167+
SendResponse sendResponse = bot.execute(request);
168+
Message message = sendResponse.message();
169+
MessageTest.checkVoiceMessage(message);
170+
}
124171
}

0 commit comments

Comments
 (0)