diff --git a/backend/src/main/java/wooteco/prolog/DataLoaderApplicationListener.java b/backend/src/main/java/wooteco/prolog/DataLoaderApplicationListener.java index 82ae9a3c7..e95097e35 100644 --- a/backend/src/main/java/wooteco/prolog/DataLoaderApplicationListener.java +++ b/backend/src/main/java/wooteco/prolog/DataLoaderApplicationListener.java @@ -3,6 +3,7 @@ import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toMap; +import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -10,7 +11,6 @@ import java.util.Map; import java.util.Random; import java.util.Set; -import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; import java.util.stream.Collectors; import javax.persistence.EntityManager; @@ -54,7 +54,7 @@ @Configuration public class DataLoaderApplicationListener implements ApplicationListener { - private static final Random random = ThreadLocalRandom.current(); + private static final Random random = new SecureRandom(); private static final Logger logger = LoggerFactory.getLogger(DataLoaderApplicationListener.class); private final EntityManagerFactory entityManagerFactory; diff --git a/backend/src/test/java/wooteco/prolog/studylog/application/FilterServiceTest.java b/backend/src/test/java/wooteco/prolog/studylog/application/FilterServiceTest.java new file mode 100644 index 000000000..14d90ba1e --- /dev/null +++ b/backend/src/test/java/wooteco/prolog/studylog/application/FilterServiceTest.java @@ -0,0 +1,78 @@ +package wooteco.prolog.studylog.application; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import wooteco.prolog.login.ui.LoginMember; +import wooteco.prolog.member.application.MemberService; +import wooteco.prolog.member.application.dto.MemberResponse; +import wooteco.prolog.member.domain.Role; +import wooteco.prolog.roadmap.application.dto.SessionResponse; +import wooteco.prolog.session.application.MissionService; +import wooteco.prolog.session.application.SessionService; +import wooteco.prolog.session.application.dto.MissionResponse; +import wooteco.prolog.studylog.application.dto.FilterResponse; +import wooteco.prolog.studylog.application.dto.TagResponse; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.doReturn; + +@ExtendWith(MockitoExtension.class) +class FilterServiceTest { + + @InjectMocks + FilterService filterService; + + @Mock + SessionService sessionService; + + @Mock + MissionService missionService; + + @Mock + TagService tagService; + + @Mock + MemberService memberService; + + @DisplayName("로그인 멤버와 관련된 세션, 미션, 태그, 멤버 정보를 가져와서 FilterResponse를 반환한다.") + @Test + void showAll() { + // given + LoginMember loginMember = new LoginMember(); + + List sessionResponses = new ArrayList<>(); + sessionResponses.add(new SessionResponse(1L, "session1")); + doReturn(sessionResponses).when(sessionService).findAllWithMySessionFirst(loginMember); + + List missionResponses = new ArrayList<>(); + missionResponses.add(new MissionResponse(1L, "mission1", new wooteco.prolog.session.application.dto.SessionResponse(1L, "session1"))); + doReturn(missionResponses).when(missionService).findAllWithMyMissionFirst(loginMember); + + List tagResponses = new ArrayList<>(); + tagResponses.add(new TagResponse(1L, "tag1")); + doReturn(tagResponses).when(tagService).findTagsIncludedInStudylogs(); + + List memberResponses = new ArrayList<>(); + memberResponses.add(new MemberResponse(1L, "베베", "bebe", Role.CREW, "img")); + doReturn(memberResponses).when(memberService).findAllOrderByNickNameAsc(); + + // when + FilterResponse response = filterService.showAll(loginMember); + + // then + assertAll( + () -> assertThat(response.getSessions()).isEqualTo(sessionResponses), + () -> assertThat(response.getMissions()).isEqualTo(missionResponses), + () -> assertThat(response.getTags()).isEqualTo(tagResponses), + () -> assertThat(response.getMembers()).isEqualTo(memberResponses) + ); + } +}