-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BE] 페어룸 삭제 기능 구현 #753
[BE] 페어룸 삭제 기능 구현 #753
Changes from 4 commits
6708e14
a6d6ebc
899f3bc
9ee63b6
6774e28
812da3c
9abcf27
c59cc48
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,8 @@ | |
public enum PairRoomStatus { | ||
|
||
IN_PROGRESS, | ||
COMPLETED; | ||
COMPLETED, | ||
DELETE; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. mysql 컬럼이 현재 enum으로 되어 있어서 변경해줘야 할 거 같은데 그건 제가 하겠습니다 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 감사합니당! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아 생각해보니까 delete 보나 deleted가 더 좋을 거 같아요..! |
||
|
||
private static final Map<String, PairRoomStatus> STATUS = Arrays.stream(values()) | ||
.collect(Collectors.toMap(PairRoomStatus::name, Function.identity())); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package site.coduo.pairroom.exception; | ||
|
||
public class DeletePairRoomException extends PairRoomException { | ||
|
||
public DeletePairRoomException(final String message) { | ||
super(message); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,6 +22,7 @@ | |
import site.coduo.pairroom.domain.PairRoom; | ||
import site.coduo.pairroom.domain.PairRoomStatus; | ||
import site.coduo.pairroom.domain.accesscode.AccessCode; | ||
import site.coduo.pairroom.exception.DeletePairRoomException; | ||
import site.coduo.pairroom.exception.PairRoomNotFoundException; | ||
import site.coduo.pairroom.repository.PairRoomEntity; | ||
import site.coduo.pairroom.repository.PairRoomRepository; | ||
|
@@ -91,6 +92,21 @@ void throw_exception_when_find_not_exist_access_code() { | |
.isExactlyInstanceOf(PairRoomNotFoundException.class); | ||
} | ||
|
||
@Test | ||
@Transactional | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이거 안붙히고 테스트 개선 안될가요? |
||
@DisplayName("삭제된 페어룸의 접근 코드를 찾으면 예외가 발생한다.") | ||
void throw_exception_when_find_delete_pair_room_access_code() { | ||
// given | ||
final PairRoomCreateRequest request = | ||
new PairRoomCreateRequest("레디", "프람", 1000L, 100L, | ||
PairRoomStatus.DELETE.name()); | ||
final String accessCode = pairRoomService.savePairRoom(request, null); | ||
|
||
// when & then | ||
assertThatThrownBy(() -> pairRoomService.findPairRoomAndTimer(accessCode)) | ||
.isExactlyInstanceOf(DeletePairRoomException.class); | ||
} | ||
|
||
@Test | ||
@DisplayName("페어룸 상태를 변경한다.") | ||
void update_pair_room_status() { | ||
|
@@ -107,6 +123,19 @@ void update_pair_room_status() { | |
.isEqualTo(PairRoomStatus.COMPLETED); | ||
} | ||
|
||
@Test | ||
@DisplayName("삭제된 페어룸 상태를 변경하려고 하면 예외를 발생시킨다.") | ||
void update_delete_pair_room_status() { | ||
// given | ||
final PairRoomCreateRequest request = | ||
new PairRoomCreateRequest("레디", "프람", 1000L, 100L, PairRoomStatus.DELETE.name()); | ||
final String accessCode = pairRoomService.savePairRoom(request, null); | ||
|
||
// when & then | ||
assertThatThrownBy(() -> pairRoomService.updatePairRoomStatus(accessCode, PairRoomStatus.COMPLETED.name())) | ||
.isExactlyInstanceOf(DeletePairRoomException.class); | ||
} | ||
|
||
@Test | ||
@DisplayName("페어 역할을 변경한다.") | ||
void change_pair_room() { | ||
|
@@ -127,8 +156,24 @@ void change_pair_room() { | |
.contains("lemonL", "fram"); | ||
} | ||
|
||
@Test | ||
@DisplayName("삭제된 페어룸의 페어 역할을 변경하려하면 예외를 발생시킨다.") | ||
void change_delete_pair_room_role() { | ||
// given | ||
final PairRoomEntity entity = PairRoomEntity.from( | ||
new PairRoom(PairRoomStatus.DELETE, | ||
new Pair(new PairName("fram"), new PairName("lemonL")), | ||
new AccessCode("1234")) | ||
); | ||
pairRoomRepository.save(entity); | ||
|
||
@DisplayName("멤버의 방 목록을 가져온다.") | ||
// when & then | ||
assertThatThrownBy(() -> pairRoomService.updateNavigatorWithDriver(entity.getAccessCode())) | ||
.isExactlyInstanceOf(DeletePairRoomException.class); | ||
} | ||
|
||
|
||
@DisplayName("삭제되지 않은, 멤버의 방 목록을 가져온다.") | ||
@Test | ||
void find_rooms_by_member() { | ||
//given | ||
|
@@ -143,6 +188,12 @@ void find_rooms_by_member() { | |
final String accessCodeB_1 = pairRoomService.savePairRoom(pairRoomCreateRequest, memberB.getAccessToken()); | ||
pairRoomService.savePairRoom(pairRoomCreateRequest, null); | ||
|
||
final PairRoomCreateRequest deletePairRoomCreateRequest = new PairRoomCreateRequest("레디", "잉크", 1, 1, | ||
"DELETE"); | ||
pairRoomService.savePairRoom(deletePairRoomCreateRequest, memberA.getAccessToken()); | ||
pairRoomService.savePairRoom(deletePairRoomCreateRequest, memberA.getAccessToken()); | ||
pairRoomService.savePairRoom(deletePairRoomCreateRequest, memberA.getAccessToken()); | ||
|
||
final List<String> memberAExpected = List.of(accessCodeA_1, accessCodeA_2); | ||
final List<String> memberBExpected = List.of(accessCodeB_1); | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
문서화 구웃
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
끼욧