|
| 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 | +} |
0 commit comments