11package com .example .solidconnection .concurrency ;
22
33import com .example .solidconnection .community .board .domain .Board ;
4- import com .example .solidconnection .community .board .repository . BoardRepository ;
4+ import com .example .solidconnection .community .board .fixture . BoardFixture ;
55import com .example .solidconnection .community .post .domain .Post ;
66import com .example .solidconnection .community .post .domain .PostCategory ;
7+ import com .example .solidconnection .community .post .fixture .PostFixture ;
78import com .example .solidconnection .community .post .repository .PostRepository ;
89import com .example .solidconnection .community .post .service .PostLikeService ;
910import com .example .solidconnection .siteuser .domain .SiteUser ;
1011import com .example .solidconnection .siteuser .fixture .SiteUserFixture ;
11- import com .example .solidconnection .siteuser .repository .SiteUserRepository ;
1212import com .example .solidconnection .support .TestContainerSpringBootTest ;
1313import org .junit .jupiter .api .BeforeEach ;
1414import org .junit .jupiter .api .DisplayName ;
1515import org .junit .jupiter .api .Test ;
1616import org .springframework .beans .factory .annotation .Autowired ;
17- import org .springframework .beans .factory .annotation .Value ;
1817
1918import java .util .concurrent .CountDownLatch ;
2019import java .util .concurrent .ExecutorService ;
2120import java .util .concurrent .Executors ;
2221import java .util .concurrent .TimeUnit ;
2322
24- import static com .example .solidconnection .e2e .DynamicFixture .createSiteUserByEmailAndNickname ;
2523import static org .junit .jupiter .api .Assertions .assertEquals ;
2624
2725@ TestContainerSpringBootTest
@@ -35,16 +33,13 @@ class PostLikeCountConcurrencyTest {
3533 private PostRepository postRepository ;
3634
3735 @ Autowired
38- private BoardRepository boardRepository ;
36+ private SiteUserFixture siteUserFixture ;
3937
4038 @ Autowired
41- private SiteUserRepository siteUserRepository ;
39+ private BoardFixture boardFixture ;
4240
4341 @ Autowired
44- private SiteUserFixture siteUserFixture ;
45-
46- @ Value ("${view.count.scheduling.delay}" )
47- private int SCHEDULING_DELAY_MS ;
42+ private PostFixture postFixture ;
4843
4944 private int THREAD_NUMS = 1000 ;
5045 private int THREAD_POOL_SIZE = 200 ;
@@ -56,30 +51,15 @@ class PostLikeCountConcurrencyTest {
5651
5752 @ BeforeEach
5853 void setUp () {
59- board = createBoard ();
60- boardRepository .save (board );
54+ board = boardFixture .자유게시판 ();
6155 user = siteUserFixture .사용자 ();
62- post = createPost (board , user );
63- postRepository .save (post );
64- }
65-
66- private Board createBoard () {
67- return new Board (
68- "FREE" , "자유게시판" );
69- }
70-
71- private Post createPost (Board board , SiteUser siteUser ) {
72- Post post = new Post (
56+ post = postFixture .게시글 (
7357 "title" ,
7458 "content" ,
7559 false ,
76- 0L ,
77- 0L ,
78- PostCategory .valueOf ("자유" )
79- );
80- post .setBoardAndSiteUser (board , siteUser );
81-
82- return post ;
60+ PostCategory .자유 ,
61+ board ,
62+ user );
8363 }
8464
8565 @ Test
@@ -91,9 +71,8 @@ private Post createPost(Board board, SiteUser siteUser) {
9171 Long likeCount = postRepository .getById (post .getId ()).getLikeCount ();
9272
9373 for (int i = 0 ; i < THREAD_NUMS ; i ++) {
94- String email = "email" + i ;
9574 String nickname = "nickname" + i ;
96- SiteUser tmpSiteUser = siteUserRepository . save ( createSiteUserByEmailAndNickname ( email , nickname ) );
75+ SiteUser tmpSiteUser = siteUserFixture . 사용자 ( i , nickname );
9776 executorService .submit (() -> {
9877 try {
9978 postLikeService .likePost (tmpSiteUser , post .getId ());
@@ -103,7 +82,6 @@ private Post createPost(Board board, SiteUser siteUser) {
10382 }
10483 });
10584 }
106-
10785 doneSignal .await (TIMEOUT_SECONDS , TimeUnit .SECONDS );
10886 executorService .shutdown ();
10987 boolean terminated = executorService .awaitTermination (TIMEOUT_SECONDS , TimeUnit .SECONDS );
0 commit comments