-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: 보호소 이메일 중복 확인 서비스 로직을 구현한다. * feat: 보호소 이메일 중복 확인 api를 구현한다. * feat: 봉사자 이메일 중복 확인 서비스 로직을 구현한다. * feat: 봉사자 이메일 중복 확인 API를 구현한다.
- Loading branch information
1 parent
b7a1261
commit 10e2755
Showing
17 changed files
with
214 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
src/main/java/com/clova/anifriends/domain/shelter/dto/CheckDuplicateShelterEmailRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.clova.anifriends.domain.shelter.dto; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
|
||
public record CheckDuplicateShelterEmailRequest( | ||
@NotBlank(message = "이메일은 필수값입니다.") | ||
String email) { | ||
|
||
} |
9 changes: 9 additions & 0 deletions
9
src/main/java/com/clova/anifriends/domain/shelter/dto/CheckDuplicateShelterResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.clova.anifriends.domain.shelter.dto; | ||
|
||
public record CheckDuplicateShelterResponse( | ||
boolean isDuplicated) { | ||
|
||
public static CheckDuplicateShelterResponse from(boolean isDuplicated) { | ||
return new CheckDuplicateShelterResponse(isDuplicated); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/clova/anifriends/domain/shelter/exception/ShelterConflictException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.clova.anifriends.domain.shelter.exception; | ||
|
||
import com.clova.anifriends.global.exception.ConflictException; | ||
import com.clova.anifriends.global.exception.ErrorCode; | ||
|
||
public class ShelterConflictException extends ConflictException { | ||
|
||
public ShelterConflictException(String message) { | ||
super(ErrorCode.ALREADY_EXISTS, message); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
...om/clova/anifriends/domain/volunteer/dto/request/CheckDuplicateVolunteerEmailRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.clova.anifriends.domain.volunteer.dto.request; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
|
||
public record CheckDuplicateVolunteerEmailRequest( | ||
@NotBlank(message = "이메일은 필수값입니다.") | ||
String email) { | ||
|
||
} |
8 changes: 8 additions & 0 deletions
8
.../clova/anifriends/domain/volunteer/dto/response/CheckDuplicateVolunteerEmailResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.clova.anifriends.domain.volunteer.dto.response; | ||
|
||
public record CheckDuplicateVolunteerEmailResponse(boolean isDuplicated) { | ||
|
||
public static CheckDuplicateVolunteerEmailResponse from(boolean isDuplicated) { | ||
return new CheckDuplicateVolunteerEmailResponse(isDuplicated); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,6 +18,8 @@ | |
import com.clova.anifriends.base.BaseControllerTest; | ||
import com.clova.anifriends.docs.format.DocumentationFormatGenerator; | ||
import com.clova.anifriends.domain.shelter.Shelter; | ||
import com.clova.anifriends.domain.shelter.dto.CheckDuplicateShelterEmailRequest; | ||
import com.clova.anifriends.domain.shelter.dto.CheckDuplicateShelterResponse; | ||
import com.clova.anifriends.domain.shelter.dto.FindShelterDetailResponse; | ||
import com.clova.anifriends.domain.shelter.dto.FindShelterMyPageResponse; | ||
import com.clova.anifriends.domain.shelter.support.ShelterFixture; | ||
|
@@ -30,6 +32,36 @@ | |
|
||
class ShelterControllerTest extends BaseControllerTest { | ||
|
||
@Test | ||
@DisplayName("보호소 이메일 중복 확인 api 호출 시") | ||
void checkDuplicateShelterEmail() throws Exception { | ||
//given | ||
CheckDuplicateShelterEmailRequest checkDuplicateShelterEmailRequest | ||
= new CheckDuplicateShelterEmailRequest("[email protected]"); | ||
CheckDuplicateShelterResponse checkDuplicateShelterResponse | ||
= new CheckDuplicateShelterResponse(true); | ||
|
||
given(shelterService.checkDuplicateEmail(anyString())).willReturn( | ||
checkDuplicateShelterResponse); | ||
|
||
//when | ||
ResultActions resultActions = mockMvc.perform(post("/api/shelters/email") | ||
.contentType(MediaType.APPLICATION_JSON) | ||
.content(objectMapper.writeValueAsString(checkDuplicateShelterEmailRequest))); | ||
|
||
//then | ||
resultActions.andExpect(status().isOk()) | ||
.andDo(restDocs.document( | ||
requestFields( | ||
fieldWithPath("email").type(JsonFieldType.STRING).description("보호소 이메일") | ||
), | ||
responseFields( | ||
fieldWithPath("isDuplicated").type(JsonFieldType.BOOLEAN) | ||
.description("이메일 중복 여부") | ||
) | ||
)); | ||
} | ||
|
||
@Test | ||
@DisplayName("보호소 회원가입 api 호출 시") | ||
void registerShelter() throws Exception { | ||
|
@@ -66,13 +98,16 @@ void registerShelter() throws Exception { | |
.attributes(DocumentationFormatGenerator.getConstraint("1자 이상, 20자 이하")), | ||
fieldWithPath("address").type(JsonFieldType.STRING).description("보호소 주소") | ||
.attributes(DocumentationFormatGenerator.getConstraint("1자 이상, 100자 이하")), | ||
fieldWithPath("addressDetail").type(JsonFieldType.STRING).description("보호소 상세 주소") | ||
fieldWithPath("addressDetail").type(JsonFieldType.STRING) | ||
.description("보호소 상세 주소") | ||
.attributes(DocumentationFormatGenerator.getConstraint("1자 이상, 100자 이하")), | ||
fieldWithPath("phoneNumber").type(JsonFieldType.STRING).description("보호소 전화번호") | ||
.attributes(DocumentationFormatGenerator.getConstraint("- 포함, 전화번호 형식 준수")), | ||
fieldWithPath("sparePhoneNumber").type(JsonFieldType.STRING).description("보호소 임시 전화번호") | ||
fieldWithPath("sparePhoneNumber").type(JsonFieldType.STRING) | ||
.description("보호소 임시 전화번호") | ||
.attributes(DocumentationFormatGenerator.getConstraint("- 포함, 전화번호 형식 준수")), | ||
fieldWithPath("isOpenedAddress").type(JsonFieldType.BOOLEAN).description("보호소 주소 공개 여부") | ||
fieldWithPath("isOpenedAddress").type(JsonFieldType.BOOLEAN) | ||
.description("보호소 주소 공개 여부") | ||
), | ||
responseHeaders( | ||
headerWithName("Location").description("생성된 리소스 접근 가능 위치") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ | |
|
||
import com.clova.anifriends.domain.shelter.Shelter; | ||
import com.clova.anifriends.domain.shelter.ShelterImage; | ||
import com.clova.anifriends.domain.shelter.dto.CheckDuplicateShelterResponse; | ||
import com.clova.anifriends.domain.shelter.dto.FindShelterDetailResponse; | ||
import com.clova.anifriends.domain.shelter.dto.FindShelterMyPageResponse; | ||
import com.clova.anifriends.domain.shelter.exception.ShelterBadRequestException; | ||
|
@@ -54,6 +55,28 @@ public boolean matches(CharSequence rawPassword, String encodedPassword) { | |
Shelter givenShelter; | ||
ShelterImage givenShelterImage; | ||
|
||
@Nested | ||
@DisplayName("checkDuplicateEmail 실행 시") | ||
class CheckDuplicateEmailTest { | ||
|
||
@Test | ||
@DisplayName("성공") | ||
void checkDuplicateEmail() { | ||
//given | ||
String email = "[email protected]"; | ||
|
||
given(shelterRepository.existsByEmail(any())).willReturn(true); | ||
|
||
//when | ||
CheckDuplicateShelterResponse response | ||
= shelterService.checkDuplicateEmail(email); | ||
|
||
//then | ||
assertThat(response.isDuplicated()).isTrue(); | ||
} | ||
|
||
} | ||
|
||
@Nested | ||
@DisplayName("registerShelter 실행 시") | ||
class RegisterShelterTest { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,7 @@ | |
import com.clova.anifriends.domain.volunteer.Volunteer; | ||
import com.clova.anifriends.domain.volunteer.VolunteerImage; | ||
import com.clova.anifriends.domain.volunteer.dto.request.RegisterVolunteerRequest; | ||
import com.clova.anifriends.domain.volunteer.dto.response.CheckDuplicateVolunteerEmailResponse; | ||
import com.clova.anifriends.domain.volunteer.dto.response.FindVolunteerMyPageResponse; | ||
import com.clova.anifriends.domain.volunteer.dto.response.FindVolunteerProfileResponse; | ||
import com.clova.anifriends.domain.volunteer.repository.VolunteerRepository; | ||
|
@@ -34,6 +35,27 @@ class VolunteerServiceTest { | |
@Mock | ||
VolunteerRepository volunteerRepository; | ||
|
||
@Nested | ||
@DisplayName("checkDuplicateVolunteerEmail 메서드 실행 시") | ||
class CheckDuplicateVolunteerEmailTest { | ||
|
||
@Test | ||
@DisplayName("성공") | ||
void checkDuplicateVolunteerEmail() { | ||
//given | ||
String email = "[email protected]"; | ||
|
||
given(volunteerRepository.existsByEmail(any())).willReturn(true); | ||
|
||
//when | ||
CheckDuplicateVolunteerEmailResponse response | ||
= volunteerService.checkDuplicateVolunteerEmail(email); | ||
|
||
//then | ||
assertThat(response.isDuplicated()).isTrue(); | ||
} | ||
} | ||
|
||
@Nested | ||
@DisplayName("registerVolunteer 메서드 실행 시") | ||
class RegisterVolunteerTest { | ||
|
Oops, something went wrong.