Skip to content

sunzo-digital/autotesting-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kolesa-upgrade-homework-11

Дедлайн: 12.11 суббота 18:00

Домашнее задание состоит из 2 частей:

1. Тесты на PHP

Реализовать валидацию данных, пришедших из формы оплаты и написать unit-тесты на валидатор. Логика валидации должна быть реализована в src\Validation\PaymentRequestValidator::validate

Требования к валидатору

Ниже перечислены параметры, которые обязательно должны присутствовать в переданном на валидацию массиве и правила, по которым должна происходить валидация.

  • name
    • строка из 2-х слов, разделенных пробелом
    • минимальная длина слова - 2 символа
    • примеры валидных значений: "Хамбар Дусалиев", "Ли Пак", "Kanye West"
    • примеры невалидных значений: "Димас", "ВиниПух", "А Б", "", "Болат Болатбеков Болатович"
  • cardNumber
    • строка из 12 цифр
  • expiration
    • строка формата {число}{число}/{число}{число}, прям как на ваших настоящих карточках
    • максимальное значение для первых пар чисел - 12, для вторых - 25
    • минимальное значение для первых пар чисел - 01 (если число меньше 10, то вначале должен быть 0), для вторых - 22
    • примеры валидных значений: 01/25, 06/23, 12/25
    • примеры невалидных значений: 13/26, 1/22, 1225
  • cvv
    • 3-х значное число (0 допускается как первый символ)

Если валидация прошла успешно - метод validate должен вернуть пустой массив.

Если валидация не прошла, метод validate должен вернуть массив строк, где каждая строка будет сообщением об ошибке.

Валидатор не должен прерывать валидацию, если была найдена ошибка, а накопить все ошибки, перед тем, как вернуть их.

Пример массива, с ошибками валидации:

[
    'name не состоит их 2-х слов',
    'cvv не трехзначное число',
]
Дополнительные (опциональные) требования:

2. Тесты на Go

https://go.dev/play/p/ks3Wh4n7iCK

После того, как реализуете решение в песочнице, нажмите на кнопку share и вставьте полученную ссылку в pull request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published