From 36b52e1485ecad492c2b91cf8ef0ebd1af39b140 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 27 Sep 2023 10:52:56 +0200 Subject: [PATCH] Polishing. Reformat code, add ticket references to test methods. See #3137 Original Pull Request: #3173 --- .../query/AbstractJpaQueryTests.java | 29 +++++++++---------- .../ParameterMetadataProviderUnitTests.java | 20 ++++++++----- ...WithNullLikeHibernateIntegrationTests.java | 3 +- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java index ed8335cbb..1ecf7c3b0 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java @@ -15,15 +15,11 @@ */ package org.springframework.data.jpa.repository.query; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; import static org.springframework.data.jpa.support.EntityManagerTestUtils.*; -import java.lang.reflect.Method; -import java.util.List; - import jakarta.persistence.EntityManager; import jakarta.persistence.LockModeType; import jakarta.persistence.PersistenceContext; @@ -31,12 +27,14 @@ import jakarta.persistence.Query; import jakarta.persistence.QueryHint; import jakarta.persistence.TypedQuery; +import java.lang.reflect.Method; +import java.util.List; + import org.junit.Assume; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; - import org.springframework.data.jpa.domain.sample.User; import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.jpa.repository.EntityGraph; @@ -80,7 +78,6 @@ public class AbstractJpaQueryTests { void addsHintsToQueryObject() throws Exception { JpaQueryMethod queryMethod = getMethod("findByLastname", String.class); - AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); Query result = jpaQuery @@ -113,8 +110,8 @@ public class AbstractJpaQueryTests { when(query.setLockMode(any(LockModeType.class))).thenReturn(query); JpaQueryMethod queryMethod = getMethod("findOneLocked", Integer.class); - AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); + Query result = jpaQuery.createQuery( new JpaParametersParameterAccessor(queryMethod.getParameters(), new Object[] { Integer.valueOf(1) })); verify(result).setLockMode(LockModeType.PESSIMISTIC_WRITE); @@ -127,7 +124,6 @@ public class AbstractJpaQueryTests { Assume.assumeTrue(currentEntityManagerIsAJpa21EntityManager(em)); JpaQueryMethod queryMethod = getMethod("findAll"); - jakarta.persistence.EntityGraph entityGraph = em.getEntityGraph("User.overview"); AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); @@ -143,7 +139,6 @@ public class AbstractJpaQueryTests { Assume.assumeTrue(currentEntityManagerIsAJpa21EntityManager(em)); JpaQueryMethod queryMethod = getMethod("getById", Integer.class); - jakarta.persistence.EntityGraph entityGraph = em.getEntityGraph("User.detail"); AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); @@ -157,12 +152,12 @@ public class AbstractJpaQueryTests { void shouldCreateHibernateJpaParameterParametersAccessorForNativeQuery() throws Exception { JpaQueryMethod queryMethod = getMethod("findByLastnameNativeQuery", String.class); - AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); - jpaQuery.execute(new Object[] {"some last name"}); + jpaQuery.execute(new Object[] { "some last name" }); - ArgumentCaptor captor = ArgumentCaptor.forClass(JpaParametersParameterAccessor.class); + ArgumentCaptor captor = ArgumentCaptor + .forClass(JpaParametersParameterAccessor.class); verify(execution).execute(eq(jpaQuery), captor.capture()); JpaParametersParameterAccessor parameterAccessor = captor.getValue(); @@ -175,9 +170,10 @@ public class AbstractJpaQueryTests { JpaQueryMethod queryMethod = getMethod("findByFirstname", String.class); AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); - jpaQuery.execute(new Object[] {"some first name"}); + jpaQuery.execute(new Object[] { "some first name" }); - ArgumentCaptor captor = ArgumentCaptor.forClass(JpaParametersParameterAccessor.class); + ArgumentCaptor captor = ArgumentCaptor + .forClass(JpaParametersParameterAccessor.class); verify(execution).execute(eq(jpaQuery), captor.capture()); JpaParametersParameterAccessor parameterAccessor = captor.getValue(); @@ -198,7 +194,8 @@ public class AbstractJpaQueryTests { @QueryHints({ @QueryHint(name = "foo", value = "bar") }) List findByLastname(String lastname); - @org.springframework.data.jpa.repository.Query(value = "select u from User u where u.lastname = ?1", nativeQuery = true) + @org.springframework.data.jpa.repository.Query(value = "select u from User u where u.lastname = ?1", + nativeQuery = true) List findByLastnameNativeQuery(String lastname); @QueryHints(value = { @QueryHint(name = "bar", value = "foo") }, forCounting = false) diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java index 026738f95..30079da0a 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java @@ -18,14 +18,11 @@ package org.springframework.data.jpa.repository.query; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import java.util.Collections; - import jakarta.persistence.criteria.CriteriaBuilder; -import org.eclipse.persistence.internal.jpa.querydef.ParameterExpressionImpl; -import org.springframework.data.repository.query.Parameters; -import org.springframework.data.repository.query.parser.Part; +import java.util.Collections; +import org.eclipse.persistence.internal.jpa.querydef.ParameterExpressionImpl; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Answers; @@ -33,6 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; +import org.springframework.data.repository.query.Parameters; +import org.springframework.data.repository.query.parser.Part; /** * Unit tests for {@link ParameterMetadataProvider}. @@ -46,10 +45,11 @@ class ParameterMetadataProviderUnitTests { @Mock(answer = Answers.RETURNS_DEEP_STUBS) Part part; - private ParameterExpressionImpl parameterExpression = new ParameterExpressionImpl(null, String.class); + @SuppressWarnings("rawtypes") // + private final ParameterExpressionImpl parameterExpression = new ParameterExpressionImpl<>(null, String.class); @Test // DATAJPA-863 - void errorMessageMentionesParametersWhenParametersAreExhausted() { + void errorMessageMentionsParametersWhenParametersAreExhausted() { CriteriaBuilder builder = mock(CriteriaBuilder.class); @@ -66,17 +66,21 @@ class ParameterMetadataProviderUnitTests { @Test // GH-3137 void returnAugmentedValueForStringExpressions() { + when(part.getProperty().getLeafProperty().isCollection()).thenReturn(false); assertThat(createParameterMetadata(Part.Type.STARTING_WITH).prepare("starting with")).isEqualTo("starting with%"); assertThat(createParameterMetadata(Part.Type.ENDING_WITH).prepare("ending with")).isEqualTo("%ending with"); assertThat(createParameterMetadata(Part.Type.CONTAINING).prepare("containing")).isEqualTo("%containing%"); - assertThat(createParameterMetadata(Part.Type.NOT_CONTAINING).prepare("not containing")).isEqualTo("%not containing%"); + assertThat(createParameterMetadata(Part.Type.NOT_CONTAINING).prepare("not containing")) + .isEqualTo("%not containing%"); assertThat(createParameterMetadata(Part.Type.LIKE).prepare("%like%")).isEqualTo("%like%"); assertThat(createParameterMetadata(Part.Type.IS_NULL).prepare(null)).isEqualTo(null); } + @SuppressWarnings({ "rawtypes", "unchecked" }) private ParameterMetadataProvider.ParameterMetadata createParameterMetadata(Part.Type partType) { + when(part.getType()).thenReturn(partType); return new ParameterMetadataProvider.ParameterMetadata<>(parameterExpression, part, null, EscapeCharacter.DEFAULT); } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeHibernateIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeHibernateIntegrationTests.java index 453dfd8c0..44ca8262d 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeHibernateIntegrationTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeHibernateIntegrationTests.java @@ -278,8 +278,9 @@ public class QueryWithNullLikeHibernateIntegrationTests { { "Frodo Baggins", "Frodo Baggins with suffix" }, { "Bilbo Baggins", "Bilbo Baggins with suffix" }, { null, null} }); } - @Test + @Test // GH-3137 void nullOptionalParameterShouldReturnAllEntries() { + List result = repository.customQueryWithOptionalParameter(null); assertThat(result).hasSize(3);