11package com .gepardec .adapter .output .persistence .repository ;
22
33import com .gepardec .TestFixtures ;
4+ import com .gepardec .adapter .output .persistence .entity .GameEntity ;
5+ import com .gepardec .adapter .output .persistence .entity .MatchEntity ;
6+ import com .gepardec .adapter .output .persistence .entity .UserEntity ;
7+ import com .gepardec .core .repository .GameRepository ;
8+ import com .gepardec .core .repository .MatchRepository ;
49import com .gepardec .core .repository .UserRepository ;
510import com .gepardec .core .services .TokenService ;
11+ import com .gepardec .model .Game ;
12+ import com .gepardec .model .Match ;
613import com .gepardec .model .User ;
714import jakarta .inject .Inject ;
815import jakarta .persistence .EntityManager ;
@@ -37,12 +44,18 @@ public class UserRepositoryTest extends GamertrackDbIT {
3744 @ Inject
3845 UserRepository userRepository ;
3946
47+ @ Inject
48+ MatchRepository matchRepository ;
49+
50+ @ Inject
51+ GameRepository gameRepository ;
52+
4053 @ Inject
4154 TokenService tokenService ;
4255
4356 @ BeforeEach
44- public void before () {
45- userRepository . deleteAllUsers ( );
57+ public void before () throws Exception {
58+ removeTableData ( MatchEntity . class , GameEntity . class , UserEntity . class );
4659 entityManager .clear ();
4760 }
4861
@@ -73,32 +86,15 @@ void ensureDeleteUserWorks() {
7386 User user = TestFixtures .user (1L );
7487 userRepository .saveUser (user );
7588
76- int sizeBefore = userRepository .findAllUsers (true ).size ();
89+ int sizeBefore = userRepository .findAllUsersSortedByMatchCount (true ).size ();
7790
7891 userRepository .deleteUser (user );
7992
8093 assertEquals (1 , sizeBefore );
81- assertEquals (0 , userRepository .findAllUsers (true ).size ());
94+ assertEquals (0 , userRepository .findAllUsersSortedByMatchCount (true ).size ());
8295 assertFalse (userRepository .findUserByToken (user .getToken ()).isPresent ());
8396 }
8497
85- @ Test
86- void ensureDeleteAllUsersWorks () {
87- List <User > users = TestFixtures .users (4 );
88- userRepository .saveUser (users .get (0 ));
89- userRepository .saveUser (users .get (1 ));
90- userRepository .saveUser (users .get (2 ));
91- userRepository .saveUser (users .get (3 ));
92-
93- int sizeBefore = userRepository .findAllUsers (true ).size ();
94-
95- userRepository .deleteAllUsers ();
96-
97- assertEquals (4 , sizeBefore );
98- assertEquals (0 , userRepository .findAllUsers (true ).size ());
99- assertFalse (userRepository .findUserByToken (users .get (1 ).getToken ()).isPresent ());
100- }
101-
10298 @ Test
10399 void ensureFindAllUsers () {
104100
@@ -110,21 +106,21 @@ void ensureFindAllUsers() {
110106 userRepository .saveUser (user2 );
111107 userRepository .saveUser (user3 );
112108
113- assertEquals (2 , userRepository .findAllUsers (false ).size ());
109+ assertEquals (2 , userRepository .findAllUsersSortedByMatchCount (false ).size ());
114110 }
115111
116112 @ Test
117113 void ensureFindAllUsersIncludeDeleted () {
118114
119- User user1 = TestFixtures .user (1L );
120- User user2 = TestFixtures .user (2L );
121- User user3 = new User (3L , "Test" , "deleted" , true ,tokenService .generateToken ());
115+ User user1 = TestFixtures .user (10L );
116+ User user2 = TestFixtures .user (20L );
117+ User user3 = new User (30L , "Test" , "deleted" , true ,tokenService .generateToken ());
122118
123119 userRepository .saveUser (user1 );
124120 userRepository .saveUser (user2 );
125121 userRepository .saveUser (user3 );
126122
127- assertEquals (3 , userRepository .findAllUsers (true ).size ());
123+ assertEquals (3 , userRepository .findAllUsersSortedByMatchCount (true ).size ());
128124 }
129125
130126 @ Test
@@ -138,16 +134,16 @@ void ensureFindUserByTokenWorks() {
138134 userRepository .saveUser (user2 );
139135 userRepository .saveUser (user3 );
140136
141- assertEquals (3 , userRepository .findAllUsers (true ).size ());
137+ assertEquals (3 , userRepository .findAllUsersSortedByMatchCount (true ).size ());
142138 assertTrue (userRepository .findUserByToken (user1 .getToken ()).isPresent ());
143139 }
144140
145141 @ Test
146142 void ensureFindUserByTokenWorksIncludedDeleted () {
147143
148- User user1 = TestFixtures .user (1L );
149- User user2 = TestFixtures .user (2L );
150- User user3 = TestFixtures .user (3L );
144+ User user1 = TestFixtures .user (10L );
145+ User user2 = TestFixtures .user (20L );
146+ User user3 = TestFixtures .user (30L );
151147 user3 .setDeactivated (true );
152148
153149 userRepository .saveUser (user1 );
@@ -172,4 +168,24 @@ void ensureExistsByUserTokenWorks() {
172168
173169 }
174170
171+ @ Test
172+ void ensureFindAllUsersSortedByMatchCountWorks () {
173+ List <Match > matches = TestFixtures .matches (5 );
174+ Game game = gameRepository .saveGame (TestFixtures .games (1 ).getFirst ()).get ();
175+ List <User > users = TestFixtures .users (4 );
176+ User user1 = userRepository .saveUser (users .getFirst ()).get ();
177+ User user2 = userRepository .saveUser (users .getLast ()).get ();
178+ User user3 = userRepository .saveUser (users .get (2 )).get ();
179+ List <Match > matches2 = TestFixtures .matches (10 );
180+ matches .forEach (match -> { match .setUsers (List .of (user1 )); match .setGame (game );});
181+ matches2 .forEach (match -> { match .setUsers (List .of (user2 )); match .setGame (game );});
182+ matches .forEach (matchRepository ::saveMatch );
183+ matches2 .forEach (matchRepository ::saveMatch );
184+
185+ List <Match > matchList = matchRepository .findAllMatches ();
186+ var foundUsers = userRepository .findAllUsersSortedByMatchCount (false );
187+
188+ matchList .forEach (System .out ::println );
189+ foundUsers .forEach (System .out ::println );
190+ }
175191}
0 commit comments