Skip to content

Commit 84a4b44

Browse files
committed
Polishing contribution
Closes gh-34807
1 parent 9d3de4f commit 84a4b44

File tree

1 file changed

+30
-73
lines changed

1 file changed

+30
-73
lines changed

spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java

Lines changed: 30 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.orm.jpa;
1818

19-
import java.util.ArrayList;
2019
import java.util.List;
2120

2221
import jakarta.persistence.EntityManager;
@@ -46,21 +45,25 @@
4645
import static org.mockito.Mockito.verify;
4746

4847
/**
48+
* Unit tests for {@link JpaTransactionManager}.
4949
* @author Costin Leau
5050
* @author Juergen Hoeller
5151
* @author Phillip Webb
5252
*/
5353
class JpaTransactionManagerTests {
5454

55-
private EntityManagerFactory factory = mock();
55+
private static final List<String> testList = List.of("test");
5656

57-
private EntityManager manager = mock();
5857

59-
private EntityTransaction tx = mock();
58+
private final EntityManagerFactory factory = mock();
6059

61-
private JpaTransactionManager tm = new JpaTransactionManager(factory);
60+
private final EntityManager manager = mock();
6261

63-
private TransactionTemplate tt = new TransactionTemplate(tm);
62+
private final EntityTransaction tx = mock();
63+
64+
private final JpaTransactionManager tm = new JpaTransactionManager(factory);
65+
66+
private final TransactionTemplate tt = new TransactionTemplate(tm);
6467

6568

6669
@BeforeEach
@@ -81,18 +84,15 @@ void verifyTransactionSynchronizationManagerState() {
8184

8285
@Test
8386
void testTransactionCommit() {
84-
final List<String> l = new ArrayList<>();
85-
l.add("test");
86-
8787
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
8888
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
8989

9090
Object result = tt.execute(status -> {
9191
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
9292
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
93-
return l;
93+
return testList;
9494
});
95-
assertThat(result).isSameAs(l);
95+
assertThat(result).isSameAs(testList);
9696

9797
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
9898
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -107,19 +107,16 @@ void testTransactionCommitWithRollbackException() {
107107
given(tx.getRollbackOnly()).willReturn(true);
108108
willThrow(new RollbackException()).given(tx).commit();
109109

110-
final List<String> l = new ArrayList<>();
111-
l.add("test");
112-
113110
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
114111
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
115112

116113
try {
117114
Object result = tt.execute(status -> {
118115
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
119116
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
120-
return l;
117+
return testList;
121118
});
122-
assertThat(result).isSameAs(l);
119+
assertThat(result).isSameAs(testList);
123120
}
124121
catch (TransactionSystemException tse) {
125122
// expected
@@ -137,9 +134,6 @@ void testTransactionCommitWithRollbackException() {
137134
void testTransactionRollback() {
138135
given(tx.isActive()).willReturn(true);
139136

140-
final List<String> l = new ArrayList<>();
141-
l.add("test");
142-
143137
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
144138
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
145139

@@ -159,9 +153,6 @@ void testTransactionRollback() {
159153

160154
@Test
161155
void testTransactionRollbackWithAlreadyRolledBack() {
162-
final List<String> l = new ArrayList<>();
163-
l.add("test");
164-
165156
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
166157
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
167158

@@ -182,9 +173,6 @@ void testTransactionRollbackWithAlreadyRolledBack() {
182173
void testTransactionRollbackOnly() {
183174
given(tx.isActive()).willReturn(true);
184175

185-
final List<String> l = new ArrayList<>();
186-
l.add("test");
187-
188176
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
189177
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
190178

@@ -194,7 +182,7 @@ void testTransactionRollbackOnly() {
194182
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
195183
status.setRollbackOnly();
196184

197-
return l;
185+
return testList;
198186
});
199187

200188
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
@@ -207,9 +195,6 @@ void testTransactionRollbackOnly() {
207195

208196
@Test
209197
void testParticipatingTransactionWithCommit() {
210-
final List<String> l = new ArrayList<>();
211-
l.add("test");
212-
213198
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
214199
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
215200

@@ -218,7 +203,7 @@ void testParticipatingTransactionWithCommit() {
218203

219204
return tt.execute(status1 -> {
220205
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
221-
return l;
206+
return testList;
222207
});
223208
});
224209

@@ -234,9 +219,6 @@ void testParticipatingTransactionWithCommit() {
234219
void testParticipatingTransactionWithRollback() {
235220
given(tx.isActive()).willReturn(true);
236221

237-
final List<String> l = new ArrayList<>();
238-
l.add("test");
239-
240222
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
241223
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
242224

@@ -263,9 +245,6 @@ void testParticipatingTransactionWithRollbackOnly() {
263245
given(tx.getRollbackOnly()).willReturn(true);
264246
willThrow(new RollbackException()).given(tx).commit();
265247

266-
final List<String> l = new ArrayList<>();
267-
l.add("test");
268-
269248
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
270249
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
271250

@@ -293,20 +272,17 @@ void testParticipatingTransactionWithRollbackOnly() {
293272
void testParticipatingTransactionWithRequiresNew() {
294273
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
295274

296-
final List<String> l = new ArrayList<>();
297-
l.add("test");
298-
299275
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
300276
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
301277

302278
Object result = tt.execute(status -> {
303279
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
304280
return tt.execute(status1 -> {
305281
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
306-
return l;
282+
return testList;
307283
});
308284
});
309-
assertThat(result).isSameAs(l);
285+
assertThat(result).isSameAs(testList);
310286

311287
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
312288
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -320,10 +296,6 @@ void testParticipatingTransactionWithRequiresNew() {
320296
void testParticipatingTransactionWithRequiresNewAndPrebound() {
321297
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
322298

323-
324-
final List<String> l = new ArrayList<>();
325-
l.add("test");
326-
327299
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
328300
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
329301

@@ -336,10 +308,10 @@ void testParticipatingTransactionWithRequiresNewAndPrebound() {
336308
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
337309
return tt.execute(status1 -> {
338310
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
339-
return l;
311+
return testList;
340312
});
341313
});
342-
assertThat(result).isSameAs(l);
314+
assertThat(result).isSameAs(testList);
343315
}
344316
finally {
345317
TransactionSynchronizationManager.unbindResource(factory);
@@ -358,9 +330,6 @@ void testParticipatingTransactionWithRequiresNewAndPrebound() {
358330
void testPropagationSupportsAndRequiresNew() {
359331
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
360332

361-
final List<String> l = new ArrayList<>();
362-
l.add("test");
363-
364333
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
365334
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
366335

@@ -370,10 +339,10 @@ void testPropagationSupportsAndRequiresNew() {
370339
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
371340
return tt2.execute(status1 -> {
372341
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
373-
return l;
342+
return testList;
374343
});
375344
});
376-
assertThat(result).isSameAs(l);
345+
assertThat(result).isSameAs(testList);
377346

378347
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
379348
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -387,9 +356,6 @@ void testPropagationSupportsAndRequiresNew() {
387356
void testPropagationSupportsAndRequiresNewAndEarlyAccess() {
388357
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
389358

390-
final List<String> l = new ArrayList<>();
391-
l.add("test");
392-
393359
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
394360
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
395361

@@ -401,10 +367,10 @@ void testPropagationSupportsAndRequiresNewAndEarlyAccess() {
401367
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
402368
return tt2.execute(status1 -> {
403369
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
404-
return l;
370+
return testList;
405371
});
406372
});
407-
assertThat(result).isSameAs(l);
373+
assertThat(result).isSameAs(testList);
408374

409375
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
410376
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -456,9 +422,6 @@ public void afterCompletion(int status) {
456422

457423
@Test
458424
void testTransactionCommitWithPropagationSupports() {
459-
final List<String> l = new ArrayList<>();
460-
l.add("test");
461-
462425
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
463426

464427
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
@@ -469,9 +432,9 @@ void testTransactionCommitWithPropagationSupports() {
469432
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
470433
assertThat(status.isNewTransaction()).isFalse();
471434
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
472-
return l;
435+
return testList;
473436
});
474-
assertThat(result).isSameAs(l);
437+
assertThat(result).isSameAs(testList);
475438

476439
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
477440
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -505,9 +468,6 @@ void testTransactionRollbackWithPropagationSupports() {
505468

506469
@Test
507470
void testTransactionCommitWithPrebound() {
508-
final List<String> l = new ArrayList<>();
509-
l.add("test");
510-
511471
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
512472
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
513473
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
@@ -517,9 +477,9 @@ void testTransactionCommitWithPrebound() {
517477
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
518478
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
519479
EntityManagerFactoryUtils.getTransactionalEntityManager(factory);
520-
return l;
480+
return testList;
521481
});
522-
assertThat(result).isSameAs(l);
482+
assertThat(result).isSameAs(testList);
523483

524484
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
525485
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
@@ -563,9 +523,6 @@ void testTransactionRollbackWithPrebound() {
563523

564524
@Test
565525
void testTransactionCommitWithPreboundAndPropagationSupports() {
566-
final List<String> l = new ArrayList<>();
567-
l.add("test");
568-
569526
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
570527

571528
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
@@ -578,9 +535,9 @@ void testTransactionCommitWithPreboundAndPropagationSupports() {
578535
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
579536
assertThat(status.isNewTransaction()).isFalse();
580537
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
581-
return l;
538+
return testList;
582539
});
583-
assertThat(result).isSameAs(l);
540+
assertThat(result).isSameAs(testList);
584541

585542
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
586543
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();

0 commit comments

Comments
 (0)