Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public Long deleteChallenge(Member member, Long challengeId) {
challengeValidator.challengeExistsBy(member, challengeId);

Challenge challenge = challengeRepository.getReferenceById(challengeId);
challengeRepository.delete(challenge);
challenge.delete();
return challengeId;
}

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/challenge/domain/challenge/Challenge.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,8 @@ public void addRecord(Record record) {
this.records.add(record);
}

public void delete() {
this.isDeleted = true;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public List<Challenge> findChallengesBy(Member member, LocalDate targetDate) {

return queryFactory.selectFrom(challenge)
.where(challenge.member.eq(member)
.and(challenge.isDeleted.isFalse())
.and(challenge.endDateTime.goe(startDateTime))
.and(challenge.startDateTime.loe(endDateTime)))
.fetch();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,15 +339,15 @@ void deleteChallenge() {
Category category = createCategory("카테고리");
categoryRepository.save(category);

ChallengeCreateServiceRequest request1 = ChallengeCreateServiceRequest.builder()
ChallengeCreateRequest request1 = ChallengeCreateRequest.builder()
.title("제목1")
.durationInWeeks(2)
.weeklyGoalCount(3)
.categoryId(category.getId())
.color("색상1")
.content("내용1")
.build();
ChallengeCreateServiceRequest request2 = ChallengeCreateServiceRequest.builder()
ChallengeCreateRequest request2 = ChallengeCreateRequest.builder()
.title("제목2")
.durationInWeeks(2)
.weeklyGoalCount(3)
Expand All @@ -356,18 +356,41 @@ void deleteChallenge() {
.content("내용2")
.build();

Challenge challenge1 = Challenge.create(member, category, request1, LocalDateTime.of(2024, 11, 11, 10, 10, 30));
Challenge challenge2 = Challenge.create(member, category, request2, LocalDateTime.of(2024, 11, 11, 11, 10, 30));
Challenge challenge1 = Challenge.create(member, category, request1.toServiceRequest()
, LocalDateTime.of(2024, 11, 11, 10, 10, 30));
Challenge challenge2 = Challenge.create(member, category, request2.toServiceRequest(),
LocalDateTime.of(2024, 11, 11, 11, 10, 30));
challengeRepository.saveAll(List.of(challenge1, challenge2));

// when
// when - 챌린지 삭제
Long deletedChallenge = challengeService.deleteChallenge(member, challenge2.getId());

// then
// then - 삭제된 챌린지 검증
assertThat(deletedChallenge).isEqualTo(challenge2.getId());
assertThat(challengeRepository.findAll()).hasSize(1)
assertThat(challengeRepository.findAll()).hasSize(2)
.extracting("title", "content", "isDeleted")
.containsExactly(
tuple("제목1", "내용1", false),
tuple("제목2", "내용2", true)
);

// given - 모든 챌린지 조회를 위한 요청 request
ChallengeQueryRequest challengeQueryRequest = ChallengeQueryRequest.builder()
.queryDate("2024-12-28")
.build();

// when - 모든 챌린지 조회
List<ChallengeResponse> challenges = challengeService.getChallenges(
member,
challengeQueryRequest.toServiceRequest()
);

// then - 조회된 챌린지들에 대한 검증
assertThat(challenges).hasSize(1)
.extracting("title", "content")
.containsExactly(tuple("제목1", "내용1"));
.containsExactlyInAnyOrder(
tuple("제목1", "내용1")
);
}

private Member createMember() {
Expand Down
Loading