Skip to content

Commit 7a59f4a

Browse files
committed
test: 내 퀘스트 조회 서비스를 테스트한다
1 parent c3257d4 commit 7a59f4a

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package daybyquest.participant.application;
2+
3+
import static daybyquest.participant.domain.ParticipantState.DOING;
4+
import static daybyquest.support.fixture.BadgeFixtures.BADGE_1;
5+
import static daybyquest.support.fixture.BadgeFixtures.BADGE_2;
6+
import static daybyquest.support.fixture.BadgeFixtures.BADGE_3;
7+
import static daybyquest.support.fixture.QuestFixtures.QUEST_1;
8+
import static org.assertj.core.api.Assertions.assertThat;
9+
10+
import daybyquest.quest.dto.response.MultipleQuestsResponse;
11+
import daybyquest.quest.dto.response.QuestResponse;
12+
import daybyquest.support.test.ServiceTest;
13+
import java.util.List;
14+
import org.junit.jupiter.api.Test;
15+
import org.springframework.beans.factory.annotation.Autowired;
16+
17+
public class GetQuestsServiceTest extends ServiceTest {
18+
19+
@Autowired
20+
private GetQuestsService getQuestsService;
21+
22+
@Test
23+
void 수행_중인_퀘스트를_조회한다() {
24+
// given
25+
final Long aliceId = ALICE를_저장한다();
26+
27+
final Long badge1Id = badges.save(BADGE_1.생성()).getId();
28+
final Long badge2Id = badges.save(BADGE_2.생성()).getId();
29+
final Long badge3Id = badges.save(BADGE_3.생성()).getId();
30+
31+
final Long quest1Id = quests.save(QUEST_1.세부사항이_설정된_일반_퀘스트_생성(badge1Id)).getId();
32+
final Long quest2Id = quests.save(QUEST_1.세부사항이_설정된_일반_퀘스트_생성(badge2Id)).getId();
33+
final Long quest3Id = quests.save(QUEST_1.세부사항이_설정된_일반_퀘스트_생성(badge3Id)).getId();
34+
35+
participants.saveWithUserIdAndQuestId(aliceId, quest1Id);
36+
participants.saveWithUserIdAndQuestId(aliceId, quest2Id);
37+
38+
final List<Long> expected = List.of(quest1Id, quest2Id);
39+
40+
// when
41+
final MultipleQuestsResponse response = getQuestsService.invoke(aliceId, DOING);
42+
final List<Long> actual = response.quests().stream().map(QuestResponse::id).toList();
43+
44+
// then
45+
assertThat(actual).containsExactlyInAnyOrderElementsOf(expected);
46+
}
47+
}

src/test/java/daybyquest/support/fixture/QuestFixtures.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ public enum QuestFixtures {
7373
return Quest.createNormalQuest(badge.getId(), imageDescription, 사진_목록(), badge.getImage());
7474
}
7575

76+
public Quest 세부사항이_설정된_일반_퀘스트_생성(final Long badgeId) {
77+
final Quest quest = 일반_퀘스트_생성(null, badgeId);
78+
세부사항을_설정한다(quest);
79+
return quest;
80+
}
81+
7682
public Quest 그룹_퀘스트_생성(final Long id, final Long groupId) {
7783
final Quest quest = Quest.createGroupQuest(groupId, imageDescription, 사진_목록(), 사진());
7884
ReflectionTestUtils.setField(quest, "id", id);

0 commit comments

Comments
 (0)