88import java .util .List ;
99import java .util .Optional ;
1010import java .util .Set ;
11+ import java .util .function .Supplier ;
1112
13+ import org .junit .jupiter .api .BeforeEach ;
1214import org .junit .jupiter .api .DisplayName ;
1315import org .junit .jupiter .api .Test ;
1416import org .junit .jupiter .api .extension .ExtendWith ;
1517import org .mockito .InjectMocks ;
1618import org .mockito .Mock ;
1719import org .mockito .junit .jupiter .MockitoExtension ;
20+ import org .mockito .junit .jupiter .MockitoSettings ;
21+ import org .mockito .quality .Strictness ;
1822
23+ import com .example .log4u .common .executor .RetryExecutor ;
1924import com .example .log4u .domain .diary .entity .Diary ;
2025import com .example .log4u .domain .diary .repository .DiaryRepository ;
2126import com .example .log4u .domain .diary .service .DiaryGeohashService ;
2631import com .example .log4u .domain .map .dto .response .DiaryMarkerResponseDto ;
2732import com .example .log4u .domain .map .exception .InvalidGeohashException ;
2833import com .example .log4u .domain .map .exception .InvalidMapLevelException ;
34+ import com .example .log4u .domain .map .repository .sido .SidoAreasDiaryCountRepository ;
2935import com .example .log4u .domain .map .repository .sido .SidoAreasRepository ;
36+ import com .example .log4u .domain .map .repository .sigg .SiggAreasDiaryCountRepository ;
3037import com .example .log4u .domain .map .repository .sigg .SiggAreasRepository ;
3138import com .example .log4u .domain .map .service .MapService ;
3239import com .example .log4u .fixture .DiaryFixture ;
3340import com .example .log4u .fixture .DiaryMarkerFixture ;
3441
3542@ DisplayName ("지도 API 단위 테스트" )
3643@ ExtendWith (MockitoExtension .class )
44+ @ MockitoSettings (strictness = Strictness .LENIENT )
3745class MapServiceTest {
3846
3947 @ InjectMocks
@@ -42,23 +50,26 @@ class MapServiceTest {
4250 @ Mock
4351 private SidoAreasRepository sidoAreasRepository ;
4452
53+ @ Mock
54+ private SidoAreasDiaryCountRepository sidoAreasDiaryCountRepository ;
55+
4556 @ Mock
4657 private SiggAreasRepository siggAreasRepository ;
4758
4859 @ Mock
49- private DiaryRepository diaryRepository ;
60+ private SiggAreasDiaryCountRepository siggAreasDiaryCountRepository ;
5061
5162 @ Mock
5263 private MarkerCacheDao markerCacheDao ;
5364
5465 @ Mock
55- private DiaryService diaryService ;
66+ private ClusterCacheDao clusterCacheDao ;
5667
5768 @ Mock
5869 private DiaryGeohashService diaryGeohashService ;
5970
6071 @ Mock
61- private ClusterCacheDao clusterCacheDao ;
72+ private RetryExecutor retryExecutor ;
6273
6374 private static final String GEOHASH_L3 = "abc" ;
6475 private static final String GEOHASH_L5 = "abcde" ;
@@ -76,6 +87,16 @@ class MapServiceTest {
7687 )
7788 );
7889
90+ @ BeforeEach
91+ void setUp () {
92+ given (retryExecutor .runWithRetry (any ()))
93+ .willAnswer (invocation -> {
94+ @ SuppressWarnings ("unchecked" )
95+ Supplier <?> supplier = invocation .getArgument (0 );
96+ return supplier .get ();
97+ });
98+ }
99+
79100 @ DisplayName ("성공: 클러스터 캐시 HIT" )
80101 @ Test
81102 void getDiaryClusters_cacheHit () {
0 commit comments