From 94bc1fecd8f216a69042cd5c636efbfe484c09f5 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 | 33 ++++++++----------- .../ParameterMetadataProviderUnitTests.java | 20 ++++++----- .../QueryWithNullLikeIntegrationTests.java | 3 +- 3 files changed, 28 insertions(+), 28 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 e51adcf7c..040af0a17 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.Assumptions.assumeThat; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.springframework.data.jpa.support.EntityManagerTestUtils.currentEntityManagerIsAJpa21EntityManager; +import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assumptions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; +import static org.springframework.data.jpa.support.EntityManagerTestUtils.*; import jakarta.persistence.EntityManager; import jakarta.persistence.LockModeType; @@ -83,7 +79,6 @@ class AbstractJpaQueryTests { void addsHintsToQueryObject() throws Exception { JpaQueryMethod queryMethod = getMethod("findByLastname", String.class); - AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); Query result = jpaQuery @@ -116,8 +111,8 @@ 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); @@ -130,7 +125,6 @@ class AbstractJpaQueryTests { assumeThat(currentEntityManagerIsAJpa21EntityManager(em)).isTrue(); JpaQueryMethod queryMethod = getMethod("findAll"); - jakarta.persistence.EntityGraph entityGraph = em.getEntityGraph("User.overview"); AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); @@ -146,7 +140,6 @@ class AbstractJpaQueryTests { assumeThat(currentEntityManagerIsAJpa21EntityManager(em)).isTrue(); JpaQueryMethod queryMethod = getMethod("getById", Integer.class); - jakarta.persistence.EntityGraph entityGraph = em.getEntityGraph("User.detail"); AbstractJpaQuery jpaQuery = new DummyJpaQuery(queryMethod, em); @@ -160,12 +153,12 @@ 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(); @@ -178,9 +171,10 @@ 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(); @@ -201,7 +195,8 @@ 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/QueryWithNullLikeIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeIntegrationTests.java index d420a70ce..518b66e80 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeIntegrationTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryWithNullLikeIntegrationTests.java @@ -278,8 +278,9 @@ class QueryWithNullLikeIntegrationTests { { "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);