Skip to content

Commit 0b49e29

Browse files
Написал тесты на Command.java и FileUtils.java
пофиксил баги
1 parent 13c3ba2 commit 0b49e29

File tree

6 files changed

+128
-50
lines changed

6 files changed

+128
-50
lines changed

src/main/java/ru/untitled_devs/core/middlewares/LoggingMiddleware.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/main/java/ru/untitled_devs/core/routers/filters/Command.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import org.telegram.telegrambots.meta.api.objects.Update;
44

5-
import java.util.Objects;
6-
75
public class Command implements Filter{
86
String command;
97

@@ -14,7 +12,7 @@ public Command(String command) {
1412
@Override
1513
public boolean check(Update update) {
1614
if (!update.hasMessage() || update.getMessage().getText() == null ||
17-
update.getMessage().getText().startsWith("/")) {
15+
!update.getMessage().getText().startsWith("/")) {
1816
return false;
1917
}
2018

src/main/java/ru/untitled_devs/core/routers/filters/CommandStart.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package ru.untitled_devs.core.routers.filters;
22

3-
public class CommandStart extends Command{
4-
3+
public class CommandStart extends Command {
54
public CommandStart() {
65
super("start");
76
}

src/main/java/ru/untitled_devs/core/utils/FileUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static String getImageFileNameWithExtension(byte[] data) {
1919
case "image/jpeg" -> ".jpg";
2020
case "image/gif" -> ".gif";
2121
case "image/webp" -> ".webp";
22-
default -> ".bin";
22+
default -> "";
2323
};
2424

2525
return UUID.randomUUID() + ext;
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package ru.untitleddevs.core.routers.filters;
2+
3+
import org.junit.jupiter.api.BeforeEach;
4+
import org.junit.jupiter.api.Test;
5+
import org.telegram.telegrambots.meta.api.objects.Message;
6+
import org.telegram.telegrambots.meta.api.objects.Update;
7+
import ru.untitled_devs.core.routers.filters.Command;
8+
import static org.junit.jupiter.api.Assertions.*;
9+
10+
import static org.mockito.Mockito.mock;
11+
import static org.mockito.Mockito.when;
12+
13+
public class CommandTest {
14+
15+
private Update updateMock;
16+
private Message messageMock;
17+
18+
@BeforeEach
19+
void setUp() {
20+
updateMock = mock(Update.class);
21+
messageMock = mock(Message.class);
22+
when(updateMock.getMessage()).thenReturn(messageMock);
23+
when(updateMock.hasMessage()).thenReturn(true);
24+
}
25+
26+
@Test
27+
void checkReturnsTrueWhenCommandMatches() {
28+
Command command = new Command("test");
29+
when(messageMock.getText()).thenReturn("/test");
30+
when(updateMock.hasMessage()).thenReturn(true);
31+
32+
boolean result = command.check(updateMock);
33+
assertTrue(result, "check() should return true when the text contains the command");
34+
35+
}
36+
37+
@Test
38+
void checkReturnsTrueWhenMultiwordCommandMatched() {
39+
Command command = new Command("test");
40+
when(messageMock.getText()).thenReturn("/test arg1 arg2");
41+
when(updateMock.hasMessage()).thenReturn(true);
42+
43+
boolean result = command.check(updateMock);
44+
assertTrue(result, "check() should return true when the text contains the command");
45+
}
46+
47+
@Test
48+
void checkReturnsTrueWhenCommandNotMatches() {
49+
Command command = new Command("start");
50+
when(messageMock.getText()).thenReturn("/test");
51+
when(updateMock.hasMessage()).thenReturn(true);
52+
53+
boolean result = command.check(updateMock);
54+
assertFalse(result, "check() should return false when the text not contains the command");
55+
56+
}
57+
58+
@Test
59+
void checkReturnsTrueWhenMultiwordCommandNotMatched() {
60+
Command command = new Command("start");
61+
when(messageMock.getText()).thenReturn("/test arg1 arg2");
62+
when(updateMock.hasMessage()).thenReturn(true);
63+
64+
boolean result = command.check(updateMock);
65+
assertFalse(result, "check() should return false when the text not contains the command");
66+
}
67+
68+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package ru.untitleddevs.core.utils;
2+
3+
import org.junit.jupiter.api.Test;
4+
import ru.untitled_devs.core.utils.FileUtils;
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
import java.util.Base64;
8+
9+
public class FileUtilsTest {
10+
@Test
11+
void getImageFileNameWithExtensionGotValidPng() {
12+
byte[] data = Base64.getDecoder().decode(
13+
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQI12NgYAAAAAMAASsJ"
14+
);
15+
String filename = FileUtils.getImageFileNameWithExtension(data);
16+
assertTrue(filename.endsWith(".png"));
17+
}
18+
19+
@Test
20+
void getImageFileNameWithExtensionGotValidJpeg() {
21+
byte[] data = Base64.getDecoder().decode(
22+
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////" +
23+
"2wBDAf//////////////////////////////////////////////////////////////////////////////////////" +
24+
"wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/" +
25+
"xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwD9AP/Z"
26+
);
27+
String filename = FileUtils.getImageFileNameWithExtension(data);
28+
assertTrue(filename.endsWith(".jpg"));
29+
}
30+
31+
@Test
32+
void getImageFileNameWithExtensionGotValidGif() {
33+
byte[] data = Base64.getDecoder().decode(
34+
"R0lGODdhAQABAIAAAAAAAP///ywAAAAAAQABAAACAkQBADs="
35+
);
36+
String filename = FileUtils.getImageFileNameWithExtension(data);
37+
assertTrue(filename.endsWith(".gif"));
38+
}
39+
40+
@Test
41+
void getImageFileNameWithExtensionGotValidWebp() {
42+
byte[] data = Base64.getDecoder().decode(
43+
"UklGRhIAAABXRUJQVlA4TAYAAAAvAAAAHAAAQQUAAA=="
44+
);
45+
String filename = FileUtils.getImageFileNameWithExtension(data);
46+
assertTrue(filename.endsWith(".webp"));
47+
}
48+
49+
@Test
50+
void getImageFileNameWithExtensionGotInvalidData() {
51+
byte[] data = Base64.getDecoder().decode("SGVsbG8gd29ybGQ=");
52+
53+
assertThrows(IllegalArgumentException.class,
54+
() -> FileUtils.getImageFileNameWithExtension(data));
55+
}
56+
57+
}

0 commit comments

Comments
 (0)