Skip to content
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

feat: 경매는 진행 중 상태가 아니면 사용자의 요청을 처리할 수 없다. #85

Merged
merged 13 commits into from
Aug 13, 2024

Conversation

chhs2131
Copy link
Member

@chhs2131 chhs2131 commented Aug 13, 2024

📄 Summary

  • 경매 입찰 시,
    • 제약 조건 추가: 경매는 진행 중 상태가 아니면 사용자의 요청을 처리할 수 없다
  • FakeAuctionRepository 추가
    • AuctionServiceTest에서 FakeAuctionRepository를 활용하여 테스트를 진행한다.
    • 기존에 의존하던 Mockito 제거
  • 경매 상태 업데이트
    • Auction의 updateStatus를 호출하여 상태 업데이트한다.
    • 현재는 현재 시간 기준과 재고를 기준으로 판단하는 로직을 활용한다.
  • 기타
    • 경매 재고 및 인당 구매 수량 제한 타입 변경 int -> long
    • 경매(Auction)는 자기 자신을 고유하게 구분하는 id를 가진다.

🙋🏻 More

close #63

- 진행 중인 경매가 아닌 경우 A016 에러를 반환한다.
- 경매 상태 비교를 Service에서 하지 않고, 경매상태(AuctionStatus)에게 직접 물어보도록 수정한다.
- 경매 상태에 의존적인 '입찰 성공' 테스트를 일시적으로 Disabled 한다.
…uction-bid-check-auction-progress

# Conflicts:
#	src/main/java/com/wootecam/luckyvickyauction/core/auction/domain/AuctionStatus.java
#	src/main/java/com/wootecam/luckyvickyauction/core/auction/dto/AuctionInfo.java
#	src/main/java/com/wootecam/luckyvickyauction/core/auction/service/AuctionService.java
#	src/main/java/com/wootecam/luckyvickyauction/global/exception/ErrorCode.java
- TODO 임시로직: 추후 스케줄러 등 믿을 수 있는 경매 관리자가 상태를 업데이트 하도록 수정 필요
- 현재는 현재 시간 기준과 재고를 기준으로 판단하는 로직을 활용한다.
- 진행 중인 경매가 아닌 경우 A016 에러를 반환한다.
- 경매 상태 비교를 Service에서 하지 않고, 경매상태(AuctionStatus)에게 직접 물어보도록 수정한다.
- 전달되는 AuctionStatus가 Null인 경우 기본값으로 AuctionStatus.WAITING을 사용한다.
- AuctionRepository 인터페이스를 구현하여 활용한다.
@chhs2131 chhs2131 requested review from yudonggeun and a team August 13, 2024 07:01
@chhs2131 chhs2131 self-assigned this Aug 13, 2024
@chhs2131 chhs2131 added the FEATURE 새로운 기능 또는 변경 label Aug 13, 2024
yudonggeun
yudonggeun previously approved these changes Aug 13, 2024
Copy link
Contributor

@yudonggeun yudonggeun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines 49 to 53
if (auctionStatus == null) {
this.status = AuctionStatus.WAITING;
} else {
this.status = auctionStatus;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

초기에 auctionStatus를 의도하지 않은 상태를 주입한 경우를 대비한 검증 로직이 있으면 좋을 것 같아요!

Copy link
Member Author

@chhs2131 chhs2131 Aug 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋습니당ㅎㅎ 관련해서 고민하던 사항인데용.

Auction에서는 외부에서 주입(e.g. 스케줄러)해주는 값을 믿고 가는 느낌으로 구성했는데, 여기에서도 같이 검증해주는게 좋을까요?

Copy link
Member Author

@chhs2131 chhs2131 Aug 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주입을 못받게 생성자의 AuctionStatus 인자를 지워버렸습니다 !


// then
// expect
System.out.println(auction);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이제는 놓아주어도 괜찮을 것 같아요 ㅎㅎ

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오우 수정하겠씁니다 ㅎㅎ

Comment on lines -17 to +18
private int maximumPurchaseLimitCount;
private long maximumPurchaseLimitCount;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 고생했어요!

- AuctionStatus는 WAITING을 기본값으로 가진다.
- Auction의 ID는 setter를 통해 지정할 수 있도록 수정한다.
Copy link
Collaborator

@minseok-oh minseok-oh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

너무 깔끔한 코드! 좋아요~

@yudonggeun yudonggeun merged commit f5d6b8c into dev Aug 13, 2024
@yudonggeun yudonggeun deleted the feat/63-auction-bid-check-auction-progress branch August 13, 2024 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FEATURE 새로운 기능 또는 변경
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE] 경매는 진행 중 상태가 아니면 사용자의 요청을 처리할 수 없다
3 participants