2
2
3
3
import static org .assertj .core .api .Assertions .assertThat ;
4
4
5
+ import java .util .Arrays ;
5
6
import java .util .List ;
6
7
import java .util .Optional ;
7
8
8
9
import org .junit .jupiter .api .Test ;
9
10
import org .springframework .beans .factory .annotation .Autowired ;
10
11
import org .springframework .boot .test .context .SpringBootTest ;
12
+ import org .springframework .data .domain .Page ;
13
+ import org .springframework .data .domain .PageRequest ;
14
+ import org .springframework .data .domain .Sort ;
15
+ import org .springframework .data .domain .Sort .Direction ;
11
16
import org .springframework .test .annotation .Rollback ;
12
17
import org .springframework .transaction .annotation .Transactional ;
13
18
19
+ import datajpa .dto .MemberDto ;
14
20
import datajpa .entity .Member ;
21
+ import datajpa .entity .Team ;
15
22
16
23
/**
17
24
*/
@@ -22,6 +29,8 @@ public class MemberRepositoryTest {
22
29
23
30
@ Autowired
24
31
private MemberRepository repository ;
32
+ @ Autowired
33
+ private TeamRepository teamRepository ;
25
34
26
35
@ Test
27
36
public void testSave () {
@@ -70,4 +79,142 @@ public void basicCRUD() {
70
79
71
80
assertThat (repository .count ()).isEqualTo (0 );
72
81
}
82
+
83
+ @ Test
84
+ public void testFindByUsernameAndAgeGreaterThan () {
85
+ Member m1 = new Member ("AAA" , 10 );
86
+ Member m2 = new Member ("AAA" , 20 );
87
+ Member m3 = new Member ("BBB" , 20 );
88
+
89
+ repository .save (m1 );
90
+ repository .save (m2 );
91
+ repository .save (m3 );
92
+
93
+ List <Member > finds = repository .findByUsernameAndAgeGreaterThan ("AAA" , 15 );
94
+ assertThat (finds .size ()).isEqualTo (1 );
95
+ }
96
+
97
+ @ Test
98
+ public void testNamedQuery () {
99
+ Member m1 = new Member ("AAA" , 10 );
100
+ Member m2 = new Member ("AAA" , 20 );
101
+ Member m3 = new Member ("BBB" , 20 );
102
+
103
+ repository .save (m1 );
104
+ repository .save (m2 );
105
+ repository .save (m3 );
106
+
107
+ List <Member > finds = repository .findWithNamedQuery ("BBB" );
108
+ assertThat (finds .size ()).isEqualTo (1 );
109
+ }
110
+
111
+ @ Test
112
+ public void testQuery () {
113
+ Member m1 = new Member ("AAA" , 10 );
114
+ Member m2 = new Member ("AAA" , 20 );
115
+ Member m3 = new Member ("BBB" , 20 );
116
+
117
+ repository .save (m1 );
118
+ repository .save (m2 );
119
+ repository .save (m3 );
120
+
121
+ List <Member > finds = repository .findUser ("AAA" , 10 );
122
+ assertThat (finds .size ()).isEqualTo (1 );
123
+ assertThat (finds .get (0 )).isEqualTo (m1 );
124
+ }
125
+
126
+ @ Test
127
+ public void testFindUsernameList () {
128
+ Member m1 = new Member ("AAA" , 10 );
129
+ Member m2 = new Member ("AAA" , 20 );
130
+ Member m3 = new Member ("BBB" , 20 );
131
+
132
+ repository .save (m1 );
133
+ repository .save (m2 );
134
+ repository .save (m3 );
135
+
136
+ List <String > usernameList = repository .findUsernameList ();
137
+
138
+ for (String s : usernameList ) {
139
+ System .out .println ("s = " + s );
140
+ }
141
+ }
142
+
143
+ @ Test
144
+ public void testFindMemberDto () {
145
+ Team team = new Team ("teamA" );
146
+ teamRepository .save (team );
147
+
148
+ Member m1 = new Member ("AAA" , 10 );
149
+ m1 .setTeam (team );
150
+ repository .save (m1 );
151
+
152
+ List <MemberDto > dataList = repository .findMemberDto ();
153
+ for (MemberDto memberDto : dataList ) {
154
+ System .out .println ("MembetDto ==> " + memberDto );
155
+ }
156
+ }
157
+
158
+ @ Test
159
+ public void testFindByNames () {
160
+ Member m1 = new Member ("AAA" , 10 );
161
+ Member m2 = new Member ("AAA" , 20 );
162
+ Member m3 = new Member ("BBB" , 20 );
163
+ Member m4 = new Member ("CCC" , 20 );
164
+
165
+ repository .saveAll (Arrays .asList (m1 , m2 , m3 , m4 ));
166
+
167
+ List <Member > members = repository .findByNames (Arrays .asList ("AAA" , "CCC" ));
168
+ for (Member member : members ) {
169
+ System .out .println ("Member ==> " + member );
170
+ }
171
+ }
172
+
173
+ @ Test
174
+ public void returnType () {
175
+ Member m1 = new Member ("AAA" , 10 );
176
+ Member m2 = new Member ("BBB" , 20 );
177
+ repository .save (m1 );
178
+ repository .save (m2 );
179
+
180
+ // NoResultException
181
+ Member findMember = repository .findMemberByUsername ("AAA" );
182
+ repository .findOptionalMemberByUsername ("AAA" );
183
+
184
+ Member ccc = repository .findMemberByUsername ("CCC" );
185
+ assertThat (ccc ).isNull ();
186
+ System .out .println ("## findMemberByUsername ==> " + findMember );
187
+
188
+ List <Member > result = repository .findListByUsername ("AAA" );
189
+ System .out .println ("## findListByUsername ==> " + result .size ());
190
+ }
191
+
192
+ @ Test
193
+ public void paging () {
194
+ // given
195
+ repository .save (new Member ("member1" , 10 ));
196
+ repository .save (new Member ("member2" , 10 ));
197
+ repository .save (new Member ("member3" , 10 ));
198
+ repository .save (new Member ("member4" , 10 ));
199
+ repository .save (new Member ("member5" , 10 ));
200
+
201
+ int age = 10 ;
202
+ PageRequest pageRequest = PageRequest .of (0 , 3 , Sort .by (Direction .DESC , "username" ));
203
+
204
+ // when
205
+ // Page<Member> page = repository.findByAge(age, pageRequest);
206
+ //Slice<Member> page = repository.findByAge(age, pageRequest);
207
+ Page <Member > page = repository .findCustomCountQueryByAge (age , pageRequest );
208
+ Page <MemberDto > dtoPage = page .map (m -> new MemberDto (m .getId (), m .getUsername (), null ));
209
+
210
+ // then
211
+ assertThat (page .getContent ().size ()).isEqualTo (pageRequest .getPageSize ());
212
+ assertThat (page .getTotalElements ()).isEqualTo (5L );
213
+ assertThat (page .getNumber ()).isEqualTo (pageRequest .getPageNumber ());
214
+ assertThat (page .getTotalPages ()).isEqualTo (2 );
215
+ assertThat (page .isFirst ()).isTrue ();
216
+ assertThat (page .isLast ()).isFalse ();
217
+ assertThat (page .hasNext ()).isTrue ();
218
+
219
+ }
73
220
}
0 commit comments