Написал небольшой тест для метода PersonScannerAdapter#read(). тест завершается успешно. А валидатор ругается:
"Убедись, что метод read() корректно считывает дату рождения с файла и устанавливает её значения в объект типа Person."
Глаз замылился, не вижу, в чем проблема. Хотя и раньше такое бывало - пишу решение с применением одних классов - не проходит, применяю другие - проходит. Хотя тесты показывают, что на выходе одно и тоже.
package com.javarush.task.task19.task1904;
import org.junit.Assert;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class SolutionTest {
@Test
public void readTest() {
String personString = "Иванов Иван Иванович 31 12 1950";
String[] parts = personString.split(" ");
String dateString = parts[3] + " " + parts[4] + " " + parts[5];
Date date = null;
try {
date = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH).parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
Person person = new Person(parts[1], parts[2], parts[0], date);
Assert.assertEquals("Иванов Иван Иванович 31 12 1950", person.toString());
}
}package com.javarush.task.task19.task1904;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Person {
private String firstName;
private String middleName;
private String lastName;
private Date birthDate;
public Person(String firstName, String middleName, String lastName, Date birthDate) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.birthDate = birthDate;
}
@Override
public String toString() {
String date = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH).format(birthDate);
return String.format("%s %s %s %s", lastName, firstName, middleName, date);
}
}