Skip to content

Commit 0db9ad0

Browse files
committed
добавлена валидация ввода имени
1 parent 67291f2 commit 0db9ad0

File tree

7 files changed

+34
-12
lines changed

7 files changed

+34
-12
lines changed

savedData.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Client{name='Иван', phoneNumber='+79991234567', idNumber=2}
2+
Client{name='Пётр', phoneNumber='+79997654321', idNumber=1}
3+
4+
Client{name='Алексей', phoneNumber='+79994444444', idNumber=6}
5+
Client{name='Сергей', phoneNumber='+79993333333', idNumber=5}
6+
7+
Client{name='ВыводТест', phoneNumber='+71111111111', idNumber=77}
8+

src/main/java/input/strategy/FileReaderStrategy.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ public Optional<Client.ClientBuilder> parseToClient(String line) {
117117
return Optional.empty();
118118
}
119119

120+
if (!name.matches("^([А-ЯЁ][а-яё]+\\s){1,2}[А-ЯЁ][а-яё]+$")) {
121+
System.out.println("Неверный формат имени " + line);
122+
return Optional.empty();
123+
}
124+
120125
if (!phoneNumber.matches("^\\+7\\d{10}$")) {
121126
System.out.println("Неверный формат номера телефона в строке: " + line);
122127
return Optional.empty();

src/main/java/input/strategy/ManualInputReaderStrategy.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,19 @@ private Client inputClient(int clientNumber) {
129129
}
130130

131131
private String promptForName() {
132-
try {
133-
return promptForString("Введите имя", true);
134-
} catch (StopInputException e) {
135-
throw e;
132+
while (true) {
133+
try {
134+
String name = promptForString("Введите имя", true);
135+
136+
if (name.matches("^([А-ЯЁ][а-яё]+\\s){1,2}[А-ЯЁ][а-яё]+$")) {
137+
return name.trim().replaceAll("\\s+", " ");
138+
} else {
139+
System.out.println("Неверный формат! Используйте: Фамилия Имя или Фамилия Имя Отчество");
140+
}
141+
142+
} catch (StopInputException e) {
143+
throw e;
144+
}
136145
}
137146
}
138147

src/test/java/input/strategy/ManualInputReaderStrategyTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ void testGetDataStopsAtLimitOf1000Clients() throws IOException {
175175
StringBuilder inputBuilder = new StringBuilder();
176176
for (int i = 0; i < 1000; i++) {
177177
inputBuilder.append("да\n");
178-
inputBuilder.append("Клиент ").append(i).append("\n");
178+
inputBuilder.append("Иван Иванов").append("\n");
179179
inputBuilder.append("+7").append(String.format("%010d", i)).append("\n");
180180
inputBuilder.append(i).append("\n");
181181
inputBuilder.append("да\n");

src/test/java/userInterface/AppControllerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ void testStartFileReaderStrategy() {
100100

101101
File testFile = new File("test_clients.txt");
102102
try (BufferedWriter writer = new BufferedWriter(new FileWriter(testFile))) {
103-
writer.write("Алексей|+79991112233|1\n");
104-
writer.write("Мария|+79992223344|2\n");
103+
writer.write("Алексей Петров|+79991112233|1\n");
104+
writer.write("Мария Иванова|+79992223344|2\n");
105105
} catch (Exception e){
106106
throw new RuntimeException(e);
107107
}

test_clients.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Алексей|+79991112233|1
2-
Мария|+79992223344|2
1+
Алексей Петров|+79991112233|1
2+
Мария Иванова|+79992223344|2

wrongTestfile_clients.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Шаров Юрий;+79408809462;699
2-
Кулагин Дмитрий;+79019463584;93
3-
Мухина Раиса Валентиновна;+79204742853;512
1+
Шаров 1234|+79408809462|699
2+
5834934 Дмитрий|+79019463584|93
3+
14289191248412 241882412|+79204742853|512
44
Мухина Алина Сергеевна;+79841015291;296
55
Аркадий Игнатьевич Тихонов;+79337132205;23
66
Большаков Матвей Эдуардович;+79051246042;591

0 commit comments

Comments
 (0)