lkd9125(이경도)
7 months ago
8 changed files with 715 additions and 42 deletions
@ -0,0 +1,228 @@ |
|||||||
|
package kr.co.palnet.kac.user.account; |
||||||
|
|
||||||
|
|
||||||
|
import kr.co.palnet.kac.BaseTest; |
||||||
|
import kr.co.palnet.kac.api.v1.user.account.service.UserAccountService; |
||||||
|
import org.junit.jupiter.api.DisplayName; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.http.MediaType; |
||||||
|
import org.springframework.restdocs.headers.HeaderDocumentation; |
||||||
|
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; |
||||||
|
import org.springframework.restdocs.payload.JsonFieldType; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; |
||||||
|
import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; |
||||||
|
import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; |
||||||
|
import static org.springframework.restdocs.payload.PayloadDocumentation.*; |
||||||
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; |
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; |
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
||||||
|
|
||||||
|
public class UserAccountControllerTest extends BaseTest { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private UserAccountService userAccountService; |
||||||
|
|
||||||
|
private final String BASE_URL = "/v1/user/account"; |
||||||
|
|
||||||
|
private final String GRANT_TYPE = "Bearer"; |
||||||
|
|
||||||
|
@DisplayName("회원정보 변경") |
||||||
|
@Test |
||||||
|
@Transactional |
||||||
|
public void updateUser() throws Exception{ |
||||||
|
String jsonRQ = """ |
||||||
|
{ |
||||||
|
"email" : "lkd9125@naver.com", |
||||||
|
"hpno" : "01083703435" |
||||||
|
} |
||||||
|
"""; |
||||||
|
|
||||||
|
String token = this.getUserToken(); |
||||||
|
|
||||||
|
this.mockMvc.perform( |
||||||
|
put(this.BASE_URL + "/update") |
||||||
|
.contentType(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.content(jsonRQ) |
||||||
|
.accept(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.header("Authorization", GRANT_TYPE + " " + token) |
||||||
|
) |
||||||
|
.andDo(print()) |
||||||
|
.andDo( |
||||||
|
document( |
||||||
|
"user/account/update", |
||||||
|
preprocessResponse(prettyPrint()), |
||||||
|
HeaderDocumentation.requestHeaders( |
||||||
|
HeaderDocumentation.headerWithName("Authorization").description("Access토큰 [로그인 발급]") |
||||||
|
), |
||||||
|
requestFields( |
||||||
|
fieldWithPath("email").type(JsonFieldType.STRING).description("바꿀 이메일").optional(), |
||||||
|
fieldWithPath("hpno").type(JsonFieldType.STRING).description("바꿀 전화번호").optional() |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
.andExpect(status().isOk()); |
||||||
|
} |
||||||
|
|
||||||
|
@DisplayName("암호 변경") |
||||||
|
@Test |
||||||
|
@Transactional |
||||||
|
public void updatePassword() throws Exception{ |
||||||
|
|
||||||
|
String jsonRQ = """ |
||||||
|
{ |
||||||
|
"userPswd" : "%s", |
||||||
|
"newPswd" : "palnet!234", |
||||||
|
"newPswdConfirm" : "palnet!234" |
||||||
|
} |
||||||
|
""".formatted(this.CREATE_PASSWORD); |
||||||
|
|
||||||
|
String token = this.getUserToken(); |
||||||
|
|
||||||
|
this.mockMvc.perform( |
||||||
|
put(this.BASE_URL + "/update/pswd") |
||||||
|
.contentType(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.content(jsonRQ) |
||||||
|
.accept(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.header("Authorization", GRANT_TYPE + " " + token) |
||||||
|
) |
||||||
|
.andDo(print()) |
||||||
|
.andDo( |
||||||
|
document( |
||||||
|
"user/account/update/pswd", |
||||||
|
preprocessResponse(prettyPrint()), |
||||||
|
HeaderDocumentation.requestHeaders( |
||||||
|
HeaderDocumentation.headerWithName("Authorization").description("Access토큰 [로그인 발급]") |
||||||
|
), |
||||||
|
requestFields( |
||||||
|
fieldWithPath("userPswd").type(JsonFieldType.STRING).description("현재 암호").optional(), |
||||||
|
fieldWithPath("newPswd").type(JsonFieldType.STRING).description("바뀔 암호"), |
||||||
|
fieldWithPath("newPswdConfirm").type(JsonFieldType.STRING).description("바뀔 암호 확인") |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
.andExpect(status().isOk()); |
||||||
|
} |
||||||
|
|
||||||
|
@DisplayName("회원정보 조회") |
||||||
|
@Test |
||||||
|
@Transactional |
||||||
|
public void getUserInfo() throws Exception{ |
||||||
|
String token = this.getUserToken(); |
||||||
|
|
||||||
|
this.mockMvc.perform( |
||||||
|
get(this.BASE_URL + "/profile") |
||||||
|
.contentType(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.accept(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.header("Authorization", GRANT_TYPE + " " + token) |
||||||
|
) |
||||||
|
.andDo(print()) |
||||||
|
.andDo( |
||||||
|
document( |
||||||
|
"user/account/profile", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름
|
||||||
|
preprocessResponse(prettyPrint()), |
||||||
|
HeaderDocumentation.requestHeaders( |
||||||
|
HeaderDocumentation.headerWithName("Authorization").description("Access토큰 [로그인 발급]") |
||||||
|
), |
||||||
|
responseFields( |
||||||
|
fieldWithPath("memberName").type(JsonFieldType.STRING).description("회원 이름"), |
||||||
|
fieldWithPath("brthdyDate").type(JsonFieldType.STRING).description("생년월일"), |
||||||
|
fieldWithPath("cntryCd").type(JsonFieldType.STRING).description("국적 구분코드"), |
||||||
|
fieldWithPath("email").type(JsonFieldType.STRING).description("이메일"), |
||||||
|
fieldWithPath("hpno").type(JsonFieldType.STRING).description("휴대폰 번호"), |
||||||
|
fieldWithPath("userId").type(JsonFieldType.STRING).description("아이디"), |
||||||
|
fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시"), |
||||||
|
fieldWithPath("updateuserId").type(JsonFieldType.STRING).description("수정자 아이디"), |
||||||
|
fieldWithPath("cptAuthCode").type(JsonFieldType.STRING).description("각 항청 구분코드") |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
.andExpect(status().isOk()); |
||||||
|
} |
||||||
|
|
||||||
|
@DisplayName("회원탈퇴") |
||||||
|
@Test |
||||||
|
@Transactional |
||||||
|
public void deleteUser() throws Exception{ |
||||||
|
String token = this.getUserToken(); |
||||||
|
|
||||||
|
this.mockMvc.perform( |
||||||
|
RestDocumentationRequestBuilders.delete(this.BASE_URL + "/delete") |
||||||
|
.contentType(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.accept(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.header("Authorization", GRANT_TYPE + " " + token) |
||||||
|
) |
||||||
|
.andDo(print()) |
||||||
|
.andDo( |
||||||
|
document( |
||||||
|
"user/account/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름
|
||||||
|
preprocessResponse(prettyPrint()), |
||||||
|
HeaderDocumentation.requestHeaders( |
||||||
|
HeaderDocumentation.headerWithName("Authorization").description("Access토큰 [로그인 발급]") |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
.andExpect(status().isOk()); |
||||||
|
} |
||||||
|
|
||||||
|
@DisplayName("회원가입") |
||||||
|
@Test |
||||||
|
@Transactional |
||||||
|
public void register() throws Exception{ |
||||||
|
|
||||||
|
String username = "TEST_" + System.currentTimeMillis(); |
||||||
|
|
||||||
|
String jsonRQ = """ |
||||||
|
{ |
||||||
|
"cstrmDivCd" : "MEMBER", |
||||||
|
"cstrmStatusCd" : "ACTIVE", |
||||||
|
"userId" : "%s", |
||||||
|
"authId" : "USER", |
||||||
|
"siteCode" : "DRONE", |
||||||
|
"userPswd" : "palnet!234", |
||||||
|
"joinCrtfyCd" : "HP_CRTFD", |
||||||
|
"memberName" : "이경도", |
||||||
|
"brthdyDate" : "1999-09-07", |
||||||
|
"email" : "lkd9125@naver.com", |
||||||
|
"hpno" : "01083703435", |
||||||
|
"clncd" : "+82" |
||||||
|
} |
||||||
|
""".formatted(username); |
||||||
|
|
||||||
|
this.mockMvc.perform( |
||||||
|
post(this.BASE_URL + "/register") |
||||||
|
.contentType(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
.content(jsonRQ) |
||||||
|
.accept(MediaType.APPLICATION_JSON_VALUE) |
||||||
|
) |
||||||
|
.andDo(print()) |
||||||
|
.andDo( |
||||||
|
document( |
||||||
|
"user/account/register", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름
|
||||||
|
preprocessResponse(prettyPrint()), |
||||||
|
requestFields( |
||||||
|
fieldWithPath("cstrmDivCd").type(JsonFieldType.STRING).description("회원타입 코드"), |
||||||
|
fieldWithPath("cstrmStatusCd").type(JsonFieldType.STRING).description("회원 활성화 코드"), |
||||||
|
fieldWithPath("userId").type(JsonFieldType.STRING).description("아이디"), |
||||||
|
fieldWithPath("authId").type(JsonFieldType.STRING).description("권한 값"), |
||||||
|
fieldWithPath("siteCode").type(JsonFieldType.STRING).description("사이트 코드"), |
||||||
|
fieldWithPath("userPswd").type(JsonFieldType.STRING).description("암호"), |
||||||
|
fieldWithPath("joinCrtfyCd").type(JsonFieldType.STRING).description("가입인증 분류 코드"), |
||||||
|
fieldWithPath("memberName").type(JsonFieldType.STRING).description("이름"), |
||||||
|
fieldWithPath("brthdyDate").type(JsonFieldType.STRING).description("생년월일"), |
||||||
|
fieldWithPath("email").type(JsonFieldType.STRING).description("이메일"), |
||||||
|
fieldWithPath("hpno").type(JsonFieldType.STRING).description("휴대폰 번호"), |
||||||
|
fieldWithPath("clncd").type(JsonFieldType.STRING).description("휴대폰 국가번호"), |
||||||
|
fieldWithPath("terms").type(JsonFieldType.ARRAY).description("동의 약관 리스트").optional(), |
||||||
|
fieldWithPath("terms[].termsSno").type(JsonFieldType.NUMBER).description("약관 식별번호"), |
||||||
|
fieldWithPath("terms[].agreeYn").type(JsonFieldType.STRING).description("약관 동의여부") |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
.andExpect(status().isCreated()); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package kr.co.palnet.kac.api.v1.user.certificate.controller; |
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
@RequestMapping |
||||||
|
@RestController |
||||||
|
@Slf4j |
||||||
|
@RequiredArgsConstructor |
||||||
|
@Tag(name = "유저 - 인증", description = "유저 인증관련") |
||||||
|
public class UserCertificateController { |
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue