14 타입변환
p251 - src/main/java/mvc/error/StringToDateConverter
public class StringToDateConverter implements Converter<String, Date> {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public Date convert(String source) {
try {
return dateFormat.parse(source);
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date format");
}
}
}
p252 - src/test/java/mvc/error/StringToDateConverterTest
class StringToDateConverterTest {
private StringToDateConverter converter;
private SimpleDateFormat dateFormat;
@BeforeEach
void setUp() {
converter = new StringToDateConverter();
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
@Test
void convert_ValidDateString_ShouldReturnDate() {
// Given
String validDateString = "2023-10-05";
// When
Date result = converter.convert(validDateString);
// Then
assertNotNull(result);
assertEquals("2023-10-05", dateFormat.format(result));
}
@Test
void convert_InvalidDateString_ShouldThrowException() {
// Given
String invalidDateString = "invalid-date";
// When & Then
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
converter.convert(invalidDateString);
});
assertTrue(exception.getMessage().contains("Invalid date format"));
}
@Test
void convert_EmptyDateString_ShouldThrowException() {
// Given
String emptyDateString = "";
// When & Then
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
converter.convert(emptyDateString);
});
assertTrue(exception.getMessage().contains("Invalid date format"));
}
}
Last updated