diff --git a/docs/pages.md b/docs/pages.md index 6960bfd..7c9489d 100644 --- a/docs/pages.md +++ b/docs/pages.md @@ -78,7 +78,7 @@ UI не ходит в HTTP напрямую. Контроллер вызывае * SoC: списки (№2) не содержат логики форм; форма №4 работает в двух режимах `create/edit` по наличию `uuid`. * Кнопки: `create`/`delete` (№2) и `edit`/`delete` (№3) рендерятся по роли (`isAdmin() || isModerator()` из `Session.getCurrentUser().role`), а не отдельными страницами. * Проверка ввода (факт): №1 — `EmailValidator`; №4 — ручные проверки длины; классы - `PasswordValidator/FirstNameValidator/LastNameValidator/ThirdNameValidator` на FormsFX существуют как задел под №6, в текущих страницах не используются. + `PasswordValidator/FirstNameValidator/LastNameValidator` на FormsFX существуют как задел под №6, в текущих страницах не используются. * Терминология: в доке используется «ресурс» per `GLOSSARY.md` (avoid «документ»). Факт расхождения: строки UI/FXML до сих пор говорят «документ» («Новый документ», «Редактирование документа», «Архив документов», «Документов пока нет») — правится отдельно, не в этом доке. diff --git a/src/main/java/com/DesktopApplicationClientJava/validation/ThirdNameValidator.java b/src/main/java/com/DesktopApplicationClientJava/validation/ThirdNameValidator.java deleted file mode 100644 index fd4c53f..0000000 --- a/src/main/java/com/DesktopApplicationClientJava/validation/ThirdNameValidator.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.DesktopApplicationClientJava.validation; - -import com.DesktopApplicationClientJava.validation.utils.ErrorMessages; -import com.dlsc.formsfx.model.structure.Field; -import com.dlsc.formsfx.model.structure.StringField; -import com.dlsc.formsfx.model.validators.StringLengthValidator; -import com.dlsc.formsfx.model.validators.Validator; -import java.util.List; - -public final class ThirdNameValidator { - public static final String FIELD_NAME = "Отчество"; - public static final int MIN_LENGTH = 2; - - private ThirdNameValidator() {} - - public static List> validators() { - return List.of( - StringLengthValidator.atLeast(MIN_LENGTH, ErrorMessages.MinLength(FIELD_NAME, MIN_LENGTH))); - } - - /** - * Thin contract over the stock FormsFX setup above: runs a {@link StringField} and returns the - * first error message, or {@code null} when valid. A missing third name is valid — the field is - * optional — but a whitespace-only value is malformed. - */ - public static String validate(String input) { - if (input == null || input.isEmpty()) { - return null; - } - if (input.isBlank()) { - return ErrorMessages.IncorrectFormat; - } - StringField field = Field.ofStringType(input).validate(toArray(validators())); - return field.isValid() ? null : field.getErrorMessages().get(0); - } - - @SuppressWarnings("unchecked") - private static Validator[] toArray(List> validators) { - return validators.toArray(new Validator[0]); - } -} diff --git a/src/test/java/com/DesktopApplicationClientJava/validation/ThirdNameValidatorTest.java b/src/test/java/com/DesktopApplicationClientJava/validation/ThirdNameValidatorTest.java deleted file mode 100644 index 447383f..0000000 --- a/src/test/java/com/DesktopApplicationClientJava/validation/ThirdNameValidatorTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.DesktopApplicationClientJava.validation; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; - -import com.DesktopApplicationClientJava.validation.utils.ErrorMessages; -import org.junit.jupiter.api.Test; - -public class ThirdNameValidatorTest { - private static final String FIELD_NAME = ThirdNameValidator.FIELD_NAME; - - @Test - void emptyThirdNameIsAccepted() { - assertNull(ThirdNameValidator.validate("")); - } - - @Test - void blankThirdNameIsRejected() { - assertEquals(ErrorMessages.IncorrectFormat, ThirdNameValidator.validate(" ")); - } - - @Test - void shortThirdNameIsRejected() { - assertEquals( - ErrorMessages.MinLength(FIELD_NAME, ThirdNameValidator.MIN_LENGTH), - ThirdNameValidator.validate("А")); - } - - @Test - void validThirdNameIsAccepted() { - assertNull(ThirdNameValidator.validate("Антон")); - } -}