Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ junit = "org.junit.jupiter:junit-jupiter:5.13.2"
junit-platform = "org.junit.platform:junit-platform-launcher:1.13.2"
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
logback-core = { module = "ch.qos.logback:logback-core", version.ref = "logback" }
mockwebserver = "com.squareup.okhttp3:mockwebserver3-junit5:5.0.0-alpha.16"
mockwebserver = "com.squareup.okhttp3:mockwebserver3-junit5:5.0.0-alpha.17"
okio = "com.squareup.okio:okio:3.14.0"
scrimage-core = { module = "com.sksamuel.scrimage:scrimage-core", version.ref = "scrimage" }
scrimage-formats-extra = { module = "com.sksamuel.scrimage:scrimage-formats-extra", version.ref = "scrimage" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,23 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import com.github.stickerifier.stickerify.junit.ClearTempFiles;
import com.github.stickerifier.stickerify.telegram.Answer;
import com.pengrad.telegrambot.TelegramBot;
import mockwebserver3.MockWebServer;
import mockwebserver3.RecordedRequest;
import mockwebserver3.junit5.internal.MockWebServerExtension;
import org.junit.jupiter.api.BeforeEach;
import mockwebserver3.junit5.StartStop;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;

import java.net.URLEncoder;

@ClearTempFiles
@ExtendWith(MockWebServerExtension.class)
class StickerifyTest {

private MockWebServer server;

@BeforeEach
void setup() {
server = new MockWebServer();
}
@StartStop
private final MockWebServer server = new MockWebServer();

@Test
void startMessage() throws Exception {
Expand All @@ -36,10 +30,10 @@ void startMessage() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.HELP);
}

Expand All @@ -55,7 +49,8 @@ private void startBot() {

private static void assertResponseContainsMessage(RecordedRequest request, Answer answer) {
var message = URLEncoder.encode(answer.getText(), UTF_8);
assertThat(request.getBody().readUtf8(), containsString(message));
assertNotNull(request.getBody());
assertThat(request.getBody().utf8(), containsString(message));
}

@Test
Expand All @@ -65,10 +60,10 @@ void helpMessage() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.HELP);
}

Expand All @@ -79,10 +74,10 @@ void privacyMessage() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.PRIVACY_POLICY);
}

Expand All @@ -93,10 +88,10 @@ void fileNotSupported() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.ERROR);
}

Expand All @@ -107,10 +102,10 @@ void fileTooBig() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.FILE_TOO_LARGE);
}

Expand All @@ -123,17 +118,18 @@ void fileAlreadyValid() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=animated_sticker.tgs", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=animated_sticker.tgs", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/animated_sticker.tgs", download.getPath());
assertEquals("/files/token/animated_sticker.tgs", download.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.FILE_ALREADY_VALID);
}

Expand All @@ -146,18 +142,20 @@ void convertedPng() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=big.png", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=big.png", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/big.png", download.getPath());
assertEquals("/files/token/big.png", download.getTarget());

var sendDocument = server.takeRequest();
assertEquals("/api/token/sendDocument", sendDocument.getPath());
assertThat(sendDocument.getBody().readUtf8(), containsString(Answer.FILE_READY.getText()));
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
assertNotNull(sendDocument.getBody());
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
}

@Test
Expand All @@ -169,18 +167,20 @@ void convertedWebp() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=static.webp", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=static.webp", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/static.webp", download.getPath());
assertEquals("/files/token/static.webp", download.getTarget());

var sendDocument = server.takeRequest();
assertEquals("/api/token/sendDocument", sendDocument.getPath());
assertThat(sendDocument.getBody().readUtf8(), containsString(Answer.FILE_READY.getText()));
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
assertNotNull(sendDocument.getBody());
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
}

@Test
Expand All @@ -192,18 +192,20 @@ void convertedMov() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=long.mov", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=long.mov", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/long.mov", download.getPath());
assertEquals("/files/token/long.mov", download.getTarget());

var sendDocument = server.takeRequest();
assertEquals("/api/token/sendDocument", sendDocument.getPath());
assertThat(sendDocument.getBody().readUtf8(), containsString(Answer.FILE_READY.getText()));
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
assertNotNull(sendDocument.getBody());
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
}

@Test
Expand All @@ -215,18 +217,20 @@ void convertedWebm() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=short_low_fps.webm", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=short_low_fps.webm", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/short_low_fps.webm", download.getPath());
assertEquals("/files/token/short_low_fps.webm", download.getTarget());

var sendDocument = server.takeRequest();
assertEquals("/api/token/sendDocument", sendDocument.getPath());
assertThat(sendDocument.getBody().readUtf8(), containsString(Answer.FILE_READY.getText()));
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
assertNotNull(sendDocument.getBody());
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
}

@Test
Expand All @@ -238,18 +242,20 @@ void convertedGif() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=valid.gif", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=valid.gif", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/valid.gif", download.getPath());
assertEquals("/files/token/valid.gif", download.getTarget());

var sendDocument = server.takeRequest();
assertEquals("/api/token/sendDocument", sendDocument.getPath());
assertThat(sendDocument.getBody().readUtf8(), containsString(Answer.FILE_READY.getText()));
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
assertNotNull(sendDocument.getBody());
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
}

@Test
Expand All @@ -261,17 +267,18 @@ void documentNotSupported() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=document.txt", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=document.txt", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/document.txt", download.getPath());
assertEquals("/files/token/document.txt", download.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.ERROR);
}

Expand All @@ -284,17 +291,18 @@ void corruptedVideo() throws Exception {
startBot();

var getUpdates = server.takeRequest();
assertEquals("/api/token/getUpdates", getUpdates.getPath());
assertEquals("/api/token/getUpdates", getUpdates.getTarget());

var getFile = server.takeRequest();
assertEquals("/api/token/getFile", getFile.getPath());
assertEquals("file_id=corrupted.mp4", getFile.getBody().readUtf8());
assertEquals("/api/token/getFile", getFile.getTarget());
assertNotNull(getFile.getBody());
assertEquals("file_id=corrupted.mp4", getFile.getBody().utf8());

var download = server.takeRequest();
assertEquals("/files/token/corrupted.mp4", download.getPath());
assertEquals("/files/token/corrupted.mp4", download.getTarget());

var sendMessage = server.takeRequest();
assertEquals("/api/token/sendMessage", sendMessage.getPath());
assertEquals("/api/token/sendMessage", sendMessage.getTarget());
assertResponseContainsMessage(sendMessage, Answer.CORRUPTED);
}
}
Loading