/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.component.telegram.integration;
import java.io.IOException;
import org.apache.camel.component.telegram.TelegramParseMode;
import org.apache.camel.component.telegram.TelegramService;
import org.apache.camel.component.telegram.TelegramServiceProvider;
import org.apache.camel.component.telegram.model.OutgoingAudioMessage;
import org.apache.camel.component.telegram.model.OutgoingDocumentMessage;
import org.apache.camel.component.telegram.model.OutgoingPhotoMessage;
import org.apache.camel.component.telegram.model.OutgoingTextMessage;
import org.apache.camel.component.telegram.model.OutgoingVideoMessage;
import org.apache.camel.component.telegram.model.UpdateResult;
import org.apache.camel.component.telegram.util.TelegramTestUtil;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Tests if the BotAPI are working correctly.
*/
public class TelegramServiceTest {
private static String authorizationToken;
private static String chatId;
@BeforeClass
public static void init() {
authorizationToken = System.getenv("TELEGRAM_AUTHORIZATION_TOKEN");
chatId = System.getenv("TELEGRAM_CHAT_ID");
}
@Test
public void testGetUpdates() {
TelegramService service = TelegramServiceProvider.get().getService();
UpdateResult res = service.getUpdates(authorizationToken, null, null, null);
Assert.assertNotNull(res);
Assert.assertTrue(res.isOk());
}
@Test
public void testSendMessage() {
TelegramService service = TelegramServiceProvider.get().getService();
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setChatId(chatId);
msg.setText("This is an auto-generated message from the Bot");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendMessageHtml() {
TelegramService service = TelegramServiceProvider.get().getService();
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setChatId(chatId);
msg.setText("This is a <b>HTML</b> <i>auto-generated</i> message from the Bot");
msg.setParseMode(TelegramParseMode.HTML.getCode());
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendMessageMarkdown() {
TelegramService service = TelegramServiceProvider.get().getService();
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setChatId(chatId);
msg.setText("This is a *Markdown* _auto-generated_ message from the Bot");
msg.setParseMode(TelegramParseMode.MARKDOWN.getCode());
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendFull() {
TelegramService service = TelegramServiceProvider.get().getService();
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setChatId(chatId);
msg.setText("This is an *auto-generated* message from the Bot");
msg.setDisableWebPagePreview(true);
msg.setParseMode("Markdown");
msg.setDisableNotification(false);
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendPhoto() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] image = TelegramTestUtil.createSampleImage("PNG");
OutgoingPhotoMessage msg = new OutgoingPhotoMessage();
msg.setPhoto(image);
msg.setChatId(chatId);
msg.setFilenameWithExtension("file.png");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendPhotoFull() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] image = TelegramTestUtil.createSampleImage("PNG");
OutgoingPhotoMessage msg = new OutgoingPhotoMessage();
msg.setPhoto(image);
msg.setChatId(chatId);
msg.setFilenameWithExtension("file.png");
msg.setCaption("Photo");
msg.setDisableNotification(false);
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendAudio() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] audio = TelegramTestUtil.createSampleAudio();
OutgoingAudioMessage msg = new OutgoingAudioMessage();
msg.setAudio(audio);
msg.setChatId(chatId);
msg.setFilenameWithExtension("audio.mp3");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendAudioFull() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] audio = TelegramTestUtil.createSampleAudio();
OutgoingAudioMessage msg = new OutgoingAudioMessage();
msg.setAudio(audio);
msg.setChatId(chatId);
msg.setFilenameWithExtension("audio.mp3");
msg.setTitle("Audio");
msg.setDurationSeconds(5);
msg.setPerformer("Myself");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendVideo() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] video = TelegramTestUtil.createSampleVideo();
OutgoingVideoMessage msg = new OutgoingVideoMessage();
msg.setVideo(video);
msg.setChatId(chatId);
msg.setFilenameWithExtension("video.mp4");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendVideoFull() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] video = TelegramTestUtil.createSampleVideo();
OutgoingVideoMessage msg = new OutgoingVideoMessage();
msg.setVideo(video);
msg.setChatId(chatId);
msg.setFilenameWithExtension("video.mp4");
msg.setDurationSeconds(2);
msg.setCaption("A Video");
msg.setWidth(90);
msg.setHeight(50);
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendDocument() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] document = TelegramTestUtil.createSampleDocument();
OutgoingDocumentMessage msg = new OutgoingDocumentMessage();
msg.setDocument(document);
msg.setChatId(chatId);
msg.setFilenameWithExtension("file.txt");
service.sendMessage(authorizationToken, msg);
}
@Test
public void testSendDocumentFull() throws IOException {
TelegramService service = TelegramServiceProvider.get().getService();
byte[] document = TelegramTestUtil.createSampleDocument();
OutgoingDocumentMessage msg = new OutgoingDocumentMessage();
msg.setDocument(document);
msg.setChatId(chatId);
msg.setFilenameWithExtension("file.png");
msg.setCaption("A document");
service.sendMessage(authorizationToken, msg);
}
}