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
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
import com.DesktopApplicationClientJava.services.ServiceRegistry;
import com.DesktopApplicationClientJava.session.Session;
import com.DesktopApplicationClientJava.utils.ControllerWiring;
import io.qameta.allure.Epic;
import io.qameta.allure.Feature;
import java.util.UUID;
import javafx.application.Platform;
import javafx.event.ActionEvent;
Expand All @@ -25,8 +27,14 @@
import javafx.scene.control.TextField;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;

@Epic("Аутентификация")
@Feature("№1 Вход")
@Tag("role:guest")
@DisplayName("Форма входа")
class LoginFormControllerTest {

private static final String VALID_EMAIL = "user@example.com";
Expand Down Expand Up @@ -63,6 +71,7 @@ void setUp() {
}

@Test
@DisplayName("Пустые поля показывают ошибку без вызова сервиса")
void emptyFieldsShowErrorAndDoNotCallApi() {
controller.onSubmit(new ActionEvent());

Expand All @@ -73,6 +82,7 @@ void emptyFieldsShowErrorAndDoNotCallApi() {
}

@Test
@DisplayName("Пустой пароль показывает ошибку без вызова сервиса")
void blankPasswordShowsErrorAndDoesNotCallApi() {
controller.emailField.setText(VALID_EMAIL);
controller.onSubmit(new ActionEvent());
Expand All @@ -84,6 +94,7 @@ void blankPasswordShowsErrorAndDoesNotCallApi() {
}

@Test
@DisplayName("Неверный формат почты показывает ошибку без вызова сервиса")
void invalidEmailShowsErrorAndDoesNotCallApi() {
controller.emailField.setText("not-an-email");
controller.passwordField.setText(VALID_PASSWORD);
Expand All @@ -96,6 +107,7 @@ void invalidEmailShowsErrorAndDoesNotCallApi() {
}

@Test
@DisplayName("Успешный вход переходит к списку ресурсов")
void successfulLoginNavigatesToResourceList() {
User user = new User(UUID.randomUUID(), VALID_EMAIL, Role.USER, "Имя", "Фамилия", true);
when(authService.login(VALID_EMAIL, VALID_PASSWORD)).thenReturn(user);
Expand All @@ -110,6 +122,7 @@ void successfulLoginNavigatesToResourceList() {
}

@Test
@DisplayName("Ошибка входа показывает сообщение сервера без перехода")
void failedLoginShowsServerErrorAndDoesNotNavigate() {
when(authService.login(VALID_EMAIL, VALID_PASSWORD))
.thenThrow(new ServiceException("Неверный логин или пароль"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,18 @@
import com.DesktopApplicationClientJava.entities.User;
import com.DesktopApplicationClientJava.services.impl.AuthServiceImpl;
import com.DesktopApplicationClientJava.session.Session;
import io.qameta.allure.Epic;
import io.qameta.allure.Feature;
import java.util.UUID;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;

@Epic("Аутентификация")
@Feature("AuthService")
@Tag("role:none")
@DisplayName("Сервис аутентификации")
class AuthServiceTest {

private Session session;
Expand All @@ -25,13 +33,15 @@ void setUp() {
}

@Test
@DisplayName("Гость не имеет ролей")
void guestHasNoRoles() {
assertFalse(authService.hasRole(Role.USER));
assertFalse(authService.hasRole(Role.MODER));
assertFalse(authService.hasRole(Role.ADMIN));
}

@Test
@DisplayName("Пользователь имеет только роль пользователя")
void userHasOnlyUserRole() {
loginAs(Role.USER);

Expand All @@ -41,6 +51,7 @@ void userHasOnlyUserRole() {
}

@Test
@DisplayName("Модер имеет роли пользователя и модера, но не админа")
void moderHasUserAndModerRolesButIsNotAdmin() {
loginAs(Role.MODER);

Expand All @@ -52,6 +63,7 @@ void moderHasUserAndModerRolesButIsNotAdmin() {
}

@Test
@DisplayName("Админ имеет все роли")
void adminHasAllRoles() {
loginAs(Role.ADMIN);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,19 @@
import com.DesktopApplicationClientJava.services.filter.ResourceFilter;
import com.DesktopApplicationClientJava.services.filter.UserFilter;
import com.DesktopApplicationClientJava.session.Session;
import io.qameta.allure.Epic;
import io.qameta.allure.Feature;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.UUID;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;

@DisplayName("Мок-сервисы входа и пользователей")
class MockServicesTest {

private Session session;
Expand All @@ -41,6 +46,10 @@ void setUp() {
}

@Test
@Epic("Аутентификация")
@Feature("AuthService")
@Tag("role:guest")
@DisplayName("Начальный админ сохраняет роль админа")
void seededAdminKeepsAdminRole() {
User user = authService.login("admin@example.com", "whatever");

Expand All @@ -50,18 +59,30 @@ void seededAdminKeepsAdminRole() {
}

@Test
@Epic("Аутентификация")
@Feature("AuthService")
@Tag("role:guest")
@DisplayName("Неизвестной почте роль назначается по префиксу")
void unknownEmailGetsRoleByPrefix() {
assertEquals(Role.MODER, authService.login("moder-ivan@example.com", "x").getRole());
assertEquals(Role.USER, authService.login("someone@example.com", "x").getRole());
}

@Test
@Epic("Аутентификация")
@Feature("AuthService")
@Tag("role:guest")
@DisplayName("Пустые учётные данные отклоняются")
void blankCredentialsAreRejected() {
assertThrows(ServiceException.class, () -> authService.login("", "x"));
assertThrows(ServiceException.class, () -> authService.login("a@b.c", ""));
}

@Test
@Epic("Аутентификация")
@Feature("AuthService")
@Tag("role:guest")
@DisplayName("Выход очищает сессию")
void logoutClearsSession() {
authService.login("user@example.com", "x");
authService.logout();
Expand Down Expand Up @@ -115,6 +136,10 @@ void downloadUnknownFileThrows404(@TempDir Path tempDir) {
}

@Test
@Epic("Пользователи")
@Feature("UsersService")
@Tag("role:admin")
@DisplayName("Поиск пользователей находит начального админа")
void usersSearchFindsSeededAdmin() {
List<User> found = usersService.search(new UserFilter("admin@", null, null, null, null), 0, 10);

Expand Down
Loading