패스트캠퍼스
패스트캠퍼스 환급챌린지 36일차 : 9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online 강의 후기
이태우(1990년)
2025. 4. 9. 23:18
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
공부 시작 시각 인증

수강 인증 사진

Email.java
package org.fastcampus.auth.domain;
import java.util.regex.Pattern;
public class Email {
private static final String EMAIL_PATTERN = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
private static final Pattern pattern = Pattern.compile(EMAIL_PATTERN);
private final String emailText;
private Email(String email) {
this.emailText = email;
}
public String getEmailText() {
return this.emailText;
}
public static Email createEmail(String email) {
if (email == null || email.isBlank()) {
throw new IllegalArgumentException("email is not valid");
}
if (!pattern.matcher(email).matches()) {
throw new IllegalArgumentException("email is not valid");
}
return new Email(email);
}
}
EmailTest.java
package org.fastcampus.auth;
import org.fastcampus.auth.domain.Email;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.NullAndEmptySource;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.*;
class EmailTest {
@ParameterizedTest
@NullAndEmptySource
void givenEmailIsEmpty_whenCreate_thenThrowError(String email) {
assertThrows(IllegalArgumentException.class, () -> Email.createEmail(email));
}
@ParameterizedTest
@ValueSource(strings = {"invalid-email", "invalid.email.com", "invalid@.com", "@invalid.com", "안녕@하세요.com"})
void givenInvalidEmail_whenCreate_thenThrowError(String email) {
assertThrows(IllegalArgumentException.class, () -> Email.createEmail(email));
}
@ParameterizedTest
@ValueSource(strings = {"test@test.com", "valid@email.com"})
void givenValidEmail_whenCreate_thenReturnEmail(String email) {
// given
// when
Email emailValue = Email.createEmail(email);
// then
assertEquals(email, emailValue.getEmailText());
}
}
학습 인증샷

공부 종료 시각 인증
