1+ package com .mangoboss .app .domain .service .faq ;
2+
3+ import com .mangoboss .app .domain .repository .FaqRepository ;
4+ import com .mangoboss .storage .faq .FaqCategory ;
5+ import com .mangoboss .storage .faq .FaqEntity ;
6+ import org .junit .jupiter .api .Test ;
7+ import org .junit .jupiter .api .extension .ExtendWith ;
8+ import org .mockito .InjectMocks ;
9+ import org .mockito .Mock ;
10+ import org .mockito .junit .jupiter .MockitoExtension ;
11+
12+ import java .util .List ;
13+
14+ import static org .assertj .core .api .Assertions .assertThat ;
15+ import static org .mockito .Mockito .*;
16+
17+ @ ExtendWith (MockitoExtension .class )
18+ class FaqServiceTest {
19+
20+ @ InjectMocks
21+ private FaqService faqService ;
22+
23+ @ Mock
24+ private FaqRepository faqRepository ;
25+
26+ @ Test
27+ void 전체_카테고리를_조회할_때_모든_FAQ를_가져온다 () {
28+ // given
29+ List <FaqEntity > allFaqs = List .of (mock (FaqEntity .class ), mock (FaqEntity .class ));
30+ when (faqRepository .findAll ()).thenReturn (allFaqs );
31+
32+ // when
33+ List <FaqEntity > result = faqService .getFaqs (FaqCategory .ALL );
34+
35+ // then
36+ assertThat (result ).isEqualTo (allFaqs );
37+ verify (faqRepository ).findAll ();
38+ verify (faqRepository , never ()).findByCategory (any ());
39+ }
40+
41+ @ Test
42+ void 서비스_카테고리를_조회할_때_SERVICE_FAQ만_가져온다 () {
43+ // given
44+ List <FaqEntity > serviceFaqs = List .of (mock (FaqEntity .class ));
45+ when (faqRepository .findByCategory (FaqCategory .SERVICE )).thenReturn (serviceFaqs );
46+
47+ // when
48+ List <FaqEntity > result = faqService .getFaqs (FaqCategory .SERVICE );
49+
50+ // then
51+ assertThat (result ).isEqualTo (serviceFaqs );
52+ verify (faqRepository ).findByCategory (FaqCategory .SERVICE );
53+ verify (faqRepository , never ()).findAll ();
54+ }
55+
56+ @ Test
57+ void 결제_카테고리를_조회할_때_PAYMENT_FAQ만_가져온다 () {
58+ // given
59+ List <FaqEntity > paymentFaqs = List .of (mock (FaqEntity .class ));
60+ when (faqRepository .findByCategory (FaqCategory .PAYMENT )).thenReturn (paymentFaqs );
61+
62+ // when
63+ List <FaqEntity > result = faqService .getFaqs (FaqCategory .PAYMENT );
64+
65+ // then
66+ assertThat (result ).isEqualTo (paymentFaqs );
67+ verify (faqRepository ).findByCategory (FaqCategory .PAYMENT );
68+ verify (faqRepository , never ()).findAll ();
69+ }
70+
71+ @ Test
72+ void 계정_카테고리를_조회할_때_ACCOUNT_FAQ만_가져온다 () {
73+ // given
74+ List <FaqEntity > accountFaqs = List .of (mock (FaqEntity .class ));
75+ when (faqRepository .findByCategory (FaqCategory .ACCOUNT )).thenReturn (accountFaqs );
76+
77+ // when
78+ List <FaqEntity > result = faqService .getFaqs (FaqCategory .ACCOUNT );
79+
80+ // then
81+ assertThat (result ).isEqualTo (accountFaqs );
82+ verify (faqRepository ).findByCategory (FaqCategory .ACCOUNT );
83+ verify (faqRepository , never ()).findAll ();
84+ }
85+ }
0 commit comments