diff --git a/src/main/java/workplate/workplateserver/auth/domain/Experience.java b/src/main/java/workplate/workplateserver/auth/domain/Experience.java deleted file mode 100644 index f6436e5..0000000 --- a/src/main/java/workplate/workplateserver/auth/domain/Experience.java +++ /dev/null @@ -1,18 +0,0 @@ -package workplate.workplateserver.auth.domain; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * 기존 경력 enum - * - * @author : parkjihyeok - * @since : 2024/11/03 - */ -@Getter -@RequiredArgsConstructor -public enum Experience { - // TODO: 2024/11/3 타입에 맞게 추가하기 - TEST("테스트용"); - private final String experience; -} diff --git a/src/main/java/workplate/workplateserver/auth/domain/MainExperience.java b/src/main/java/workplate/workplateserver/auth/domain/MainExperience.java new file mode 100644 index 0000000..6ebd11f --- /dev/null +++ b/src/main/java/workplate/workplateserver/auth/domain/MainExperience.java @@ -0,0 +1,28 @@ +package workplate.workplateserver.auth.domain; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 직종 대분류 + * + * @author : parkjihyeok + * @since : 2024/11/03 + */ +@Getter +@RequiredArgsConstructor +public enum MainExperience { + COOKING_SERVING("요리·서빙"), + PRODUCTION_TECHNICAL("생산·기술"), + DRIVING_DELIVERY_LOGISTICS("운전·배달·물류"), + CONSTRUCTION_CIVIL_ENGINEERING_LABOR("건설·토목·노무"), + DISTRIBUTION_SALES("유통·판매"), + CULTURE_LEISURE_LIFESTYLE("문화·여가·생활"), + SERVICE("서비스"), + OFFICE_ACCOUNTING_IT("사무·회계·IT"), + SALES_CONSULTING("영업·상담"), + CAREGIVING_NURSING_MEDICAL("요양·간호·의료"), + EDUCATION_INSTRUCTION("교육·강사"); + + private final String mainExperience; +} diff --git a/src/main/java/workplate/workplateserver/auth/domain/PhysicalStatus.java b/src/main/java/workplate/workplateserver/auth/domain/PhysicalStatus.java index 5b1c9ca..77bb71e 100644 --- a/src/main/java/workplate/workplateserver/auth/domain/PhysicalStatus.java +++ b/src/main/java/workplate/workplateserver/auth/domain/PhysicalStatus.java @@ -12,7 +12,8 @@ @Getter @RequiredArgsConstructor public enum PhysicalStatus { - // TODO: 2024/11/3 타입에 맞게 추가하기 - TEST("테스트용"); + NORMAL("정상"), + PRE_FRAIL("노쇠 전"), + FRAIL("노쇠"); private final String physicalStatus; } diff --git a/src/main/java/workplate/workplateserver/auth/domain/Preference.java b/src/main/java/workplate/workplateserver/auth/domain/Preference.java deleted file mode 100644 index 24c4bf8..0000000 --- a/src/main/java/workplate/workplateserver/auth/domain/Preference.java +++ /dev/null @@ -1,18 +0,0 @@ -package workplate.workplateserver.auth.domain; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * 선호하는 직종 enum - * - * @author : parkjihyeok - * @since : 2024/11/03 - */ -@Getter -@RequiredArgsConstructor -public enum Preference { - // TODO: 2024/11/3 타입에 맞게 추가하기 - TEST("테스트용"); - private final String preference; -} diff --git a/src/main/java/workplate/workplateserver/auth/domain/SubExperience.java b/src/main/java/workplate/workplateserver/auth/domain/SubExperience.java new file mode 100644 index 0000000..e4698f2 --- /dev/null +++ b/src/main/java/workplate/workplateserver/auth/domain/SubExperience.java @@ -0,0 +1,119 @@ +package workplate.workplateserver.auth.domain; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 직종 소분류 + * + * @author : parkjihyeok + * @since : 2024/11/15 + */ +@Getter +@RequiredArgsConstructor +public enum SubExperience { + // Cooking and Serving + CHEF_COOK("주방장·조리사"), + KITCHEN_STAFF("주방·주방보조·설거지"), + SERVING_PACKAGING("서빙·포장"), + COUNTER("카운터"), + STORE_MANAGER("점장·매니저"), + OTHER_COOKING_SERVING("요리·서빙 기타"), + + // Production and Technical + TEXTILE("섬유·재단·미싱"), + PRODUCTION_MANUFACTURING("생산·제조·조립·인쇄"), + PACKAGING_INSPECTION("포장·검사"), + INSTALLATION_REPAIR("설치·수리·정비·AS"), + FARM_AGRICULTURE("농장·농사"), + METALWORK_MOLD("금속·금형"), + AUTO_REPAIR_SHIPBUILDING("자동차정비·조선·선원"), + MACHINERY_EQUIPMENT("기계·설비"), + FOOD_MANUFACTURING("농수산물 가공·식품 제조"), + OTHER_PRODUCTION_TECHNICAL("생산·기술 기타"), + + // Driving and Delivery + PARCEL_DELIVERY("택배·물류"), + CARGO_SPECIAL_VEHICLES("화물·중장비·특수차"), + INDEPENDENT_CONTRACTOR("지입·차량용역"), + BUS_TAXI_VAN("버스·택시·승합차"), + DELIVERY_MOVING("배송·이사"), + QUICK_SERVICE("배달·퀵·이륜차"), + CHAUFFEUR("승용차·대리운전"), + OTHER_DRIVING_DELIVERY("운전·배달 기타"), + + // Construction + CONSTRUCTION_FINISHING("건설마감"), + CONSTRUCTION_STRUCTURE("건설구조"), + WELDING_CUTTING("용접·절단"), + PLUMBING_FACILITIES("배관·설비"), + ELECTRICAL_MANAGEMENT("전기·조명·시설관리"), + CONSTRUCTION_SITE("건설현장"), + OTHER_CONSTRUCTION("건설·토목 기타"), + + // Sales and Distribution + MART_SUPERMARKET("마트·슈퍼"), + CONVENIENCE_STORE("편의점"), + LIVESTOCK_PRODUCE("축산·청과·농수산"), + DEPARTMENT_STORE("백화점·아울렛·쇼핑몰"), + LARGE_RETAIL_STORE("대형마트·유통점"), + CLOTHING_ACCESSORIES("의류·주얼리·잡화"), + FLORIST("꽃·화훼"), + COSMETICS_BEAUTY("화장품·뷰티·헬스스토어"), + OTHER_SALES_DISTRIBUTION("유통·판매 기타"), + + // Culture and Leisure + HOTEL_LODGING("모텔·호텔·숙박"), + SAUNA_SPA("사우나·찜질방"), + HIGHWAY_REST_STOP("고속도로 휴게소"), + SPORTS("당구장·볼링장·스포츠"), + GOLF("골프·스크린골프"), + ARCADE_PC_ROOM("오락실·PC방"), + BEAUTY("헤어·네일·피부·미용"), + PET_SHOP("반려동물·애견샵"), + STUDY_CAFE("독서실·고시원·스터디카페"), + OTHER_LIFESTYLE("문화·여가·생활 기타"), + + // Services + CLEANING_SANITATION("청소·미화·방역"), + SECURITY_GUARD("경비·보안"), + CAR_WASH_REFUELING("세차·주유"), + PARKING_MANAGEMENT("주차관리·주차도우미"), + LAUNDRY_ALTERATION("세탁·수선"), + HOUSEKEEPER_BABYSITTER("가사도우미·베이비시터"), + FUNERAL_WEDDING("상조·웨딩·연회"), + OTHER_SERVICE("서비스 기타"), + + // Office Work + ACCOUNTING_FINANCE("경리·세무·회계"), + OFFICE_PLANNING("사무·기획·관리·홍보"), + GENERAL_AFFAIRS("총무·노무·법무·인사"), + IT_DESIGN("컴퓨터·IT·디자인"), + RECEPTION_SECRETARY("안내·비서"), + OTHER_OFFICE_WORK("사무·회계·IT 기타"), + + // Sales and Consulting + INBOUND_CS("인바운드·CS"), + OUTBOUND_TM("아웃바운드·TM"), + REAL_ESTATE("부동산"), + GENERAL_SALES("일반·기술영업"), + FINANCE_INSURANCE("금융·보험·카드"), + OTHER_SALES_CONSULTING("상담·영업기타"), + + // Medical and Care + ELDERLY_CARE("요양·간병·돌봄"), + NURSING_ASSISTANT("간호조무사·간호사"), + MEDICAL_TECHNICIAN("의료기사·치료사"), + DOCTOR("의사·한의사"), + OTHER_MEDICAL_CARE("요양·간호·의료 기타"), + + // Education and Instruction + DAYCARE("어린이집·유치원"), + ENTRANCE_EXAM("입시·보습·자격증"), + PRIVATE_TUTORING("과외·공부방·학습지"), + SPORTS_INSTRUCTION("생활체육·스포츠"), + MUSIC_ART("음악·피아노·미술"), + OTHER_EDUCATION("교육·강사 기타"); + + private final String subExperience; +} diff --git a/src/main/java/workplate/workplateserver/auth/domain/dto/request/JoinRequest.java b/src/main/java/workplate/workplateserver/auth/domain/dto/request/JoinRequest.java index 583eca4..3e7d40d 100644 --- a/src/main/java/workplate/workplateserver/auth/domain/dto/request/JoinRequest.java +++ b/src/main/java/workplate/workplateserver/auth/domain/dto/request/JoinRequest.java @@ -2,6 +2,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; /** * 회원가입 요청 DTO @@ -10,6 +11,7 @@ * @since : 2024/10/31 */ @Getter +@NoArgsConstructor @AllArgsConstructor public class JoinRequest { diff --git a/src/main/java/workplate/workplateserver/auth/domain/dto/request/MemberDetailRequest.java b/src/main/java/workplate/workplateserver/auth/domain/dto/request/MemberDetailRequest.java index 08066b9..c2d474a 100644 --- a/src/main/java/workplate/workplateserver/auth/domain/dto/request/MemberDetailRequest.java +++ b/src/main/java/workplate/workplateserver/auth/domain/dto/request/MemberDetailRequest.java @@ -1,12 +1,11 @@ package workplate.workplateserver.auth.domain.dto.request; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; import lombok.AllArgsConstructor; import lombok.Getter; -import workplate.workplateserver.auth.domain.Experience; +import lombok.NoArgsConstructor; +import workplate.workplateserver.auth.domain.MainExperience; import workplate.workplateserver.auth.domain.PhysicalStatus; -import workplate.workplateserver.auth.domain.Preference; +import workplate.workplateserver.auth.domain.SubExperience; /** * 회원 상세정보 DTO @@ -15,12 +14,15 @@ * @since : 2024/10/31 */ @Getter +@NoArgsConstructor @AllArgsConstructor public class MemberDetailRequest { private String username; private int age; - private Experience experience; + private MainExperience mainExperience; + private SubExperience subExperience; + private MainExperience mainPreference; + private SubExperience subPreference; private PhysicalStatus physicalStatus; - private Preference preference; } diff --git a/src/main/java/workplate/workplateserver/auth/domain/entity/MemberDetail.java b/src/main/java/workplate/workplateserver/auth/domain/entity/MemberDetail.java index 99f2ba5..c480ccb 100644 --- a/src/main/java/workplate/workplateserver/auth/domain/entity/MemberDetail.java +++ b/src/main/java/workplate/workplateserver/auth/domain/entity/MemberDetail.java @@ -14,9 +14,10 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; -import workplate.workplateserver.auth.domain.Experience; +import workplate.workplateserver.auth.domain.MainExperience; import workplate.workplateserver.auth.domain.PhysicalStatus; -import workplate.workplateserver.auth.domain.Preference; +import workplate.workplateserver.auth.domain.SubExperience; +import workplate.workplateserver.auth.domain.dto.request.MemberDetailRequest; import workplate.workplateserver.common.BaseEntity; /** @@ -43,21 +44,25 @@ public class MemberDetail extends BaseEntity { private int age; @Enumerated(value = EnumType.STRING) - private Experience experience; + private MainExperience mainExperience; @Enumerated(value = EnumType.STRING) - private PhysicalStatus physicalStatus; + private SubExperience subExperience; + @Enumerated(value = EnumType.STRING) + private MainExperience mainPreference; @Enumerated(value = EnumType.STRING) - private Preference preference; + private SubExperience subPreference; + @Enumerated(value = EnumType.STRING) + private PhysicalStatus physicalStatus; - public static MemberDetail toEntity(Member member, int age, Experience experience, PhysicalStatus physicalStatus, - Preference preference) { + public static MemberDetail toEntity(Member member, MemberDetailRequest request) { return MemberDetail.builder() .member(member) - .age(age) - .experience(experience) - .physicalStatus(physicalStatus) - .preference(preference) + .age(request.getAge()) + .mainPreference(request.getMainPreference()) + .subExperience(request.getSubExperience()) + .subPreference(request.getSubPreference()) + .physicalStatus(request.getPhysicalStatus()) .build(); } } diff --git a/src/main/java/workplate/workplateserver/auth/service/MemberService.java b/src/main/java/workplate/workplateserver/auth/service/MemberService.java index bcb3ef6..09ad4b0 100644 --- a/src/main/java/workplate/workplateserver/auth/service/MemberService.java +++ b/src/main/java/workplate/workplateserver/auth/service/MemberService.java @@ -57,9 +57,7 @@ public void saveMember(JoinRequest joinRequest) { public void saveDetails(MemberDetailRequest request) { Member member = commonService.findByUsername(request.getUsername(), true); Credit credit = Credit.toEntity(member); - MemberDetail memberDetail = MemberDetail.toEntity(member, request.getAge(), request.getExperience(), - request.getPhysicalStatus(), - request.getPreference()); + MemberDetail memberDetail = MemberDetail.toEntity(member, request); memberDetailRepository.save(memberDetail); creditRepository.save(credit); } diff --git a/src/main/java/workplate/workplateserver/credit/domain/dto/CreditRequest.java b/src/main/java/workplate/workplateserver/credit/domain/dto/CreditRequest.java index e4d8323..f646648 100644 --- a/src/main/java/workplate/workplateserver/credit/domain/dto/CreditRequest.java +++ b/src/main/java/workplate/workplateserver/credit/domain/dto/CreditRequest.java @@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; +import lombok.NoArgsConstructor; /** * 크레딧 증감 요청 @@ -11,6 +12,7 @@ * @since : 2024/11/13 */ @Getter +@NoArgsConstructor @AllArgsConstructor @Builder public class CreditRequest { @@ -18,5 +20,4 @@ public class CreditRequest { private String username; private Long balance; - } diff --git a/src/main/java/workplate/workplateserver/work/domain/dto/WorkJoinRequest.java b/src/main/java/workplate/workplateserver/work/domain/dto/WorkJoinRequest.java index 67456d2..8cedcc5 100644 --- a/src/main/java/workplate/workplateserver/work/domain/dto/WorkJoinRequest.java +++ b/src/main/java/workplate/workplateserver/work/domain/dto/WorkJoinRequest.java @@ -2,6 +2,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; /** * 소일거리 참가 요청 @@ -10,6 +11,7 @@ * @since : 2024/11/13 */ @Getter +@NoArgsConstructor @AllArgsConstructor public class WorkJoinRequest { diff --git a/src/main/resources/static/docs/index.html b/src/main/resources/static/docs/index.html index f04f70c..88a9a9f 100644 --- a/src/main/resources/static/docs/index.html +++ b/src/main/resources/static/docs/index.html @@ -490,7 +490,7 @@

요청

HTTP request
-
POST /api/join?_csrf=QsE6JKQlHZIiU8HPOYZmNGwJHQc0clQ0ae2hjrzFgOfI3TyXI_kMEJ0QJaQPZKf3CqtSDQhqMD8GQ2QZDN_E7YijtYWs7Vin HTTP/1.1
+
POST /api/join?_csrf=uqGwVr5ZRkFGB1PDZT5OiMVU0jpDbCBYYDbvR2T-R8Q_DWeS3JmIbtg6d3BrYmXxAxN6vKFt_wN3CUN1VgDbJAbJJaVdbgKg HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Content-Length: 75
 Host: localhost:8080
@@ -606,7 +606,7 @@ 

요청

HTTP request
-
POST /api/join?_csrf=U9yI2-54Q6c8Ts98IiUY_jcQcR3l1qwoaYbxhgHhgYRQRACrMOWw7tcaIJQRLKoZEggsmlYkXCSD580FXLbIv2DZ57ZnfTXP HTTP/1.1
+
POST /api/join?_csrf=nHAt8mXu5LrBXuVeaBu2HIYegvQHhqbJ9_PMyGVbGoI4V6oh-kcfkVOM1Ivsad09WjaCL-V_r81iv5LkxcqvqwM5LudeYMgR HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Content-Length: 75
 Host: localhost:8080
@@ -722,17 +722,19 @@ 

요청

HTTP request
-
POST /api/member?_csrf=ypKKXvLvUxriu6QobHxkW-WEvnAQ-pgBTh3lFWvpcmPXMYbB8_O_OpffMSvPiJNOVVFQYoCzk0l0zPwsK3zQd17eFFXmBuT5 HTTP/1.1
+
POST /api/member?_csrf=P36JFwmul7Teu6P8UCzcJ0IGpZJZa_KevzzOcfMTJZpZhciWW0ixLzmY9oHzisfFZgHoF3dkiPA4WMezjAqoE8QmE686tKmg HTTP/1.1
 Content-Type: application/json;charset=UTF-8
-Content-Length: 120
+Content-Length: 246
 Host: localhost:8080
 
 {
   "username" : "testId",
   "age" : 70,
-  "experience" : "TEST",
-  "physicalStatus" : "TEST",
-  "preference" : "TEST"
+  "mainExperience" : "OFFICE_ACCOUNTING_IT",
+  "subExperience" : "ACCOUNTING_FINANCE",
+  "mainPreference" : "OFFICE_ACCOUNTING_IT",
+  "subPreference" : "ACCOUNTING_FINANCE",
+  "physicalStatus" : "NORMAL"
 }
@@ -764,19 +766,29 @@
Request fields

나이

-

experience

+

mainExperience

String

-

일 경험

+

일 경험 (대분류)

-

physicalStatus

+

subExperience

String

-

건강 상태

+

일 경험 (소분류)

+ + +

mainPreference

+

String

+

선호 직종 (대분류)

-

preference

+

subPreference

String

-

선호 직종

+

선호 직종 (소분류)

+ + +

physicalStatus

+

String

+

건강 상태

@@ -850,17 +862,19 @@

요청

HTTP request
-
POST /api/member?_csrf=YTAh2WzfOOjSLVashUr_Rip1Y_-_oqUiLFtvbygcWRaQOcmJUQESvV7sXY3_TmKVvGfLJBhCTp2IlpIPG2wLChF_O3ClWqqx HTTP/1.1
+
POST /api/member?_csrf=pZ25SF_D7mKw0dsGee1kXmL8WR_Yu2nru0qP64U_vwS7vPnDlquILDv0i1Od4bkxH8BQOlGddCa6iAjG2im_ieYKjGffiJv0 HTTP/1.1
 Content-Type: application/json;charset=UTF-8
-Content-Length: 120
+Content-Length: 246
 Host: localhost:8080
 
 {
   "username" : "testId",
   "age" : 70,
-  "experience" : "TEST",
-  "physicalStatus" : "TEST",
-  "preference" : "TEST"
+  "mainExperience" : "OFFICE_ACCOUNTING_IT",
+  "subExperience" : "ACCOUNTING_FINANCE",
+  "mainPreference" : "OFFICE_ACCOUNTING_IT",
+  "subPreference" : "ACCOUNTING_FINANCE",
+  "physicalStatus" : "NORMAL"
 }
@@ -892,19 +906,29 @@
Request fields

나이

-

experience

+

mainExperience

String

-

일 경험

+

일 경험 (대분류)

-

physicalStatus

+

subExperience

String

-

건강 상태

+

일 경험 (소분류)

+ + +

mainPreference

+

String

+

선호 직종 (대분류)

-

preference

+

subPreference

String

-

선호 직종

+

선호 직종 (소분류)

+ + +

physicalStatus

+

String

+

건강 상태

@@ -1485,7 +1509,7 @@

요청

HTTP request
-
PATCH /api/credits/plus?_csrf=p-sx8nx0iFNeVfUDDu9YOv9kAe5_7_Rc2eqMT7vW5sREQQL1lo1QkEQV7GJzN8Y3O8JsXptXLNZIi8Jx7Nq7K4Lg1KFxIDaR HTTP/1.1
+
PATCH /api/credits/plus?_csrf=FTufPolFbnQWgcjDW8jT-Zkka5uhtYIsfBvR-8aKTSGi-mnJJQuoCbgjChI7sK6lY-Xnz6oTRvnHgbABSCrnmv--ekKRzFys HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Content-Length: 47
 Host: localhost:8080
@@ -1608,7 +1632,7 @@ 

요청

HTTP request
-
PATCH /api/credits/minus?_csrf=JKkbsJeB-Sz-w-AC7kxVC2Sk-t2H4JN9m31Sli7D3L8hFxgoRpF9gKW3nU_TptExj2FhM12R1-Xi06ZQoklgpB_wvooWI3tK HTTP/1.1
+
PATCH /api/credits/minus?_csrf=RIhdRhgUX7s9SaRUFcBJ4rkdcDr5ESnv0ZSbEQORawtiuuyFJ-xrdSAjbd0Qe5E2Ie19gY4qXQOaIBrC5_etJzuoXmhRgoq8 HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Content-Length: 47
 Host: localhost:8080
@@ -2005,7 +2029,7 @@ 

요청

HTTP request
-
POST /api/works-join?_csrf=Yt9bTYD94jclNSw3axkWxVEAKuhXyyf6cHKZ-iBXsJ4HdKyUW-9tfrjK0A8IVB5VXjQipzI1B4pk80XXR0qrnxJkhak0EJjx HTTP/1.1
+
POST /api/works-join?_csrf=aLTWfYjPQd7xySlQdXuyQQ-JWy5_zEjlcqFBU1-hVLp8xZ2lUdLmTun_cunc_hBoEFaGcWztdk9N-ivIF5YkZm_EMo9Fof6c HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Content-Length: 44
 Host: localhost:8080
@@ -2113,7 +2137,7 @@ 
Response fields
diff --git a/src/test/java/workplate/workplateserver/auth/controller/MemberControllerTest.java b/src/test/java/workplate/workplateserver/auth/controller/MemberControllerTest.java index c661c11..e46b643 100644 --- a/src/test/java/workplate/workplateserver/auth/controller/MemberControllerTest.java +++ b/src/test/java/workplate/workplateserver/auth/controller/MemberControllerTest.java @@ -24,9 +24,9 @@ import com.google.gson.Gson; -import workplate.workplateserver.auth.domain.Experience; +import workplate.workplateserver.auth.domain.MainExperience; import workplate.workplateserver.auth.domain.PhysicalStatus; -import workplate.workplateserver.auth.domain.Preference; +import workplate.workplateserver.auth.domain.SubExperience; import workplate.workplateserver.auth.domain.dto.request.JoinRequest; import workplate.workplateserver.auth.domain.dto.request.MemberDetailRequest; import workplate.workplateserver.auth.domain.jwt.JwtTokenProvider; @@ -141,7 +141,9 @@ void joinFailTest() throws Exception { @WithMockUser void addDetailTest() throws Exception { // Given - MemberDetailRequest request = new MemberDetailRequest("testId", 70, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest request = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); // When mockMvc.perform(post("/api/member") @@ -163,9 +165,11 @@ void addDetailTest() throws Exception { requestFields( fieldWithPath("username").description("가입한 아이디"), fieldWithPath("age").description("나이"), - fieldWithPath("experience").description("일 경험"), - fieldWithPath("physicalStatus").description("건강 상태"), - fieldWithPath("preference").description("선호 직종") + fieldWithPath("mainExperience").description("일 경험 (대분류)"), + fieldWithPath("subExperience").description("일 경험 (소분류)"), + fieldWithPath("mainPreference").description("선호 직종 (대분류)"), + fieldWithPath("subPreference").description("선호 직종 (소분류)"), + fieldWithPath("physicalStatus").description("건강 상태") ), responseFields( fieldWithPath("success").description("성공여부"), @@ -181,7 +185,9 @@ void addDetailTest() throws Exception { @WithMockUser void addDetailFailTest() throws Exception { // Given - MemberDetailRequest request = new MemberDetailRequest("testId", 70, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest request = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); doThrow(new UsernameNotFoundException("회원정보를 찾을 수 없습니다.")).when(memberService).saveDetails(any()); // When @@ -204,9 +210,11 @@ void addDetailFailTest() throws Exception { requestFields( fieldWithPath("username").description("가입한 아이디"), fieldWithPath("age").description("나이"), - fieldWithPath("experience").description("일 경험"), - fieldWithPath("physicalStatus").description("건강 상태"), - fieldWithPath("preference").description("선호 직종") + fieldWithPath("mainExperience").description("일 경험 (대분류)"), + fieldWithPath("subExperience").description("일 경험 (소분류)"), + fieldWithPath("mainPreference").description("선호 직종 (대분류)"), + fieldWithPath("subPreference").description("선호 직종 (소분류)"), + fieldWithPath("physicalStatus").description("건강 상태") ), responseFields( fieldWithPath("success").description("성공여부"), diff --git a/src/test/java/workplate/workplateserver/auth/repository/MemberDetailRepositoryTest.java b/src/test/java/workplate/workplateserver/auth/repository/MemberDetailRepositoryTest.java index 5bfa986..8767836 100644 --- a/src/test/java/workplate/workplateserver/auth/repository/MemberDetailRepositoryTest.java +++ b/src/test/java/workplate/workplateserver/auth/repository/MemberDetailRepositoryTest.java @@ -4,16 +4,16 @@ import java.util.Optional; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.transaction.annotation.Transactional; -import workplate.workplateserver.auth.domain.Experience; +import workplate.workplateserver.auth.domain.MainExperience; import workplate.workplateserver.auth.domain.PhysicalStatus; -import workplate.workplateserver.auth.domain.Preference; +import workplate.workplateserver.auth.domain.SubExperience; +import workplate.workplateserver.auth.domain.dto.request.MemberDetailRequest; import workplate.workplateserver.auth.domain.entity.Member; import workplate.workplateserver.auth.domain.entity.MemberDetail; @@ -37,7 +37,10 @@ class MemberDetailRepositoryTest { @DisplayName("회원 상세정보 저장 테스트") void saveTest() { // Given - MemberDetail md = MemberDetail.toEntity(member, 10, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest request = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); + MemberDetail md = MemberDetail.toEntity(member, request); memberDetailRepository.save(md); // When @@ -46,8 +49,8 @@ void saveTest() { // Then assertAll( () -> assertEquals(md.getAge(), result.getAge()), - () -> assertEquals(md.getPreference(), result.getPreference()), - () -> assertEquals(md.getExperience(), result.getExperience()), + () -> assertEquals(md.getMainExperience(), result.getMainExperience()), + () -> assertEquals(md.getSubExperience(), result.getSubExperience()), () -> assertEquals(md.getPhysicalStatus(), result.getPhysicalStatus()) ); } @@ -56,13 +59,17 @@ void saveTest() { @DisplayName("회원 상세정보 삭제 테스트") void deleteTest() { // Given - MemberDetail md = MemberDetail.toEntity(member, 10, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest request = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); + MemberDetail md = MemberDetail.toEntity(member, request); memberDetailRepository.save(md); // When memberDetailRepository.deleteById(md.getId()); // Then - assertEquals(Optional.empty(), memberDetailRepository.findById(md.getId()));; + assertEquals(Optional.empty(), memberDetailRepository.findById(md.getId())); + ; } } diff --git a/src/test/java/workplate/workplateserver/auth/service/MemberServiceTest.java b/src/test/java/workplate/workplateserver/auth/service/MemberServiceTest.java index 0854146..59688c7 100644 --- a/src/test/java/workplate/workplateserver/auth/service/MemberServiceTest.java +++ b/src/test/java/workplate/workplateserver/auth/service/MemberServiceTest.java @@ -3,8 +3,6 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.BDDMockito.*; -import java.util.Optional; - import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -14,9 +12,9 @@ import org.springframework.security.access.AccessDeniedException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import workplate.workplateserver.auth.domain.Experience; +import workplate.workplateserver.auth.domain.MainExperience; import workplate.workplateserver.auth.domain.PhysicalStatus; -import workplate.workplateserver.auth.domain.Preference; +import workplate.workplateserver.auth.domain.SubExperience; import workplate.workplateserver.auth.domain.dto.request.JoinRequest; import workplate.workplateserver.auth.domain.dto.request.MemberDetailRequest; import workplate.workplateserver.auth.domain.entity.Member; @@ -81,7 +79,9 @@ void saveMemberFailTest() { @DisplayName("회원 상세정보 저장 테스트") void saveDetailsTest() { // Given - MemberDetailRequest memberDetailRequest = new MemberDetailRequest("testId", 10, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest memberDetailRequest = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); Member m = Member.toEntity("testId", "name", "pw"); given(commonService.findByUsername("testId", true)).willReturn(m); @@ -97,7 +97,9 @@ void saveDetailsTest() { @DisplayName("회원 상세정보 저장 실패 테스트") void saveDetailsFailTest() { // Given - MemberDetailRequest memberDetailRequest = new MemberDetailRequest("testId", 10, Experience.TEST, PhysicalStatus.TEST, Preference.TEST); + MemberDetailRequest memberDetailRequest = new MemberDetailRequest("testId", 70, MainExperience.OFFICE_ACCOUNTING_IT, + SubExperience.ACCOUNTING_FINANCE, MainExperience.OFFICE_ACCOUNTING_IT, SubExperience.ACCOUNTING_FINANCE, + PhysicalStatus.NORMAL); Member m = Member.toEntity("testId", "name", "pw"); given(commonService.findByUsername("testId", true)).willThrow(AccessDeniedException.class);