Polishing.

Added author tag, JavaDoc and improved test name.

See #2540
Original pull request #2542
This commit is contained in:
Jens Schauder
2022-05-24 15:07:43 +02:00
parent 718f9201fc
commit 4aeac55211
2 changed files with 21 additions and 13 deletions

View File

@@ -32,6 +32,7 @@ import org.springframework.data.repository.query.ParametersParameterAccessor;
*
* @author Wonchul Heo
* @author Jens Schauder
* @author Cedomir Igaly
* @since 2.7
*/
class HibernateJpaParametersParameterAccessor extends JpaParametersParameterAccessor {

View File

@@ -1,6 +1,9 @@
package org.springframework.data.jpa.provider;
import jakarta.persistence.EntityManager;
import java.lang.reflect.Method;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -12,37 +15,41 @@ import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.lang.reflect.Method;
/**
* Unit tests for {@link HibernateJpaParametersParameterAccessor}.
*
* @author Cedomir Igaly
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:hjppa-test.xml")
public class HibernateJpaParametersParameterAccessorUnitTests {
@Autowired
private EntityManager em;
@Autowired private EntityManager em;
@Autowired
private PlatformTransactionManager transactionManager;
@Autowired private PlatformTransactionManager transactionManager;
@Test
void withoutTransaction() throws NoSuchMethodException {
simpleTest();
parametersCanGetAccessesOutsideTransaction();
}
@Test
void withinTransaction() throws Exception {
final TransactionStatus tx = transactionManager.getTransaction(new DefaultTransactionDefinition());
TransactionStatus tx = transactionManager.getTransaction(new DefaultTransactionDefinition());
try {
simpleTest();
parametersCanGetAccessesOutsideTransaction();
} finally {
transactionManager.rollback(tx);
}
}
private void simpleTest() throws NoSuchMethodException {
final Method method = EntityManager.class.getMethod("flush");
final JpaParameters parameters = new JpaParameters(method);
final HibernateJpaParametersParameterAccessor accessor = new HibernateJpaParametersParameterAccessor(parameters, new Object[]{}, em);
private void parametersCanGetAccessesOutsideTransaction() throws NoSuchMethodException {
Method method = EntityManager.class.getMethod("flush");
JpaParameters parameters = new JpaParameters(method);
HibernateJpaParametersParameterAccessor accessor = new HibernateJpaParametersParameterAccessor(parameters,
new Object[] {}, em);
Assertions.assertEquals(0, accessor.getValues().length);
Assertions.assertEquals(parameters, accessor.getParameters());
}