|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
|
* Copyright 2002-2018 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -16,14 +16,12 @@
@@ -16,14 +16,12 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.orm.jpa; |
|
|
|
|
|
|
|
|
|
import java.sql.SQLException; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import javax.persistence.EntityManager; |
|
|
|
|
import javax.persistence.EntityManagerFactory; |
|
|
|
|
import javax.persistence.EntityTransaction; |
|
|
|
|
import javax.persistence.RollbackException; |
|
|
|
|
import javax.sql.DataSource; |
|
|
|
|
|
|
|
|
|
import org.junit.After; |
|
|
|
|
import org.junit.Before; |
|
|
|
|
@ -62,7 +60,7 @@ public class JpaTransactionManagerTests {
@@ -62,7 +60,7 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Before |
|
|
|
|
public void setUp() throws Exception { |
|
|
|
|
public void setup() { |
|
|
|
|
factory = mock(EntityManagerFactory.class); |
|
|
|
|
manager = mock(EntityManager.class); |
|
|
|
|
tx = mock(EntityTransaction.class); |
|
|
|
|
@ -76,7 +74,7 @@ public class JpaTransactionManagerTests {
@@ -76,7 +74,7 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@After |
|
|
|
|
public void tearDown() throws Exception { |
|
|
|
|
public void verifyTransactionSynchronizationManagerState() { |
|
|
|
|
assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty()); |
|
|
|
|
assertFalse(TransactionSynchronizationManager.isSynchronizationActive()); |
|
|
|
|
assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly()); |
|
|
|
|
@ -758,39 +756,6 @@ public class JpaTransactionManagerTests {
@@ -758,39 +756,6 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
verify(manager).clear(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testTransactionCommitWithDataSource() throws SQLException { |
|
|
|
|
DataSource ds = mock(DataSource.class); |
|
|
|
|
tm.setDataSource(ds); |
|
|
|
|
|
|
|
|
|
given(manager.getTransaction()).willReturn(tx); |
|
|
|
|
|
|
|
|
|
final List<String> l = new ArrayList<>(); |
|
|
|
|
l.add("test"); |
|
|
|
|
|
|
|
|
|
assertTrue(!TransactionSynchronizationManager.hasResource(factory)); |
|
|
|
|
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive()); |
|
|
|
|
|
|
|
|
|
Object result = tt.execute(new TransactionCallback() { |
|
|
|
|
@Override |
|
|
|
|
public Object doInTransaction(TransactionStatus status) { |
|
|
|
|
assertTrue(TransactionSynchronizationManager.hasResource(factory)); |
|
|
|
|
assertTrue(TransactionSynchronizationManager.isSynchronizationActive()); |
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush(); |
|
|
|
|
return l; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
assertTrue(result == l); |
|
|
|
|
|
|
|
|
|
assertTrue(!TransactionSynchronizationManager.hasResource(factory)); |
|
|
|
|
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive()); |
|
|
|
|
|
|
|
|
|
verify(tx).commit(); |
|
|
|
|
verify(manager).flush(); |
|
|
|
|
verify(manager).close(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testInvalidIsolation() { |
|
|
|
|
tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE); |
|
|
|
|
|