Polishing.

Reformat code, add ticket references to test methods.

See #3137
Original Pull Request: #3173
This commit is contained in:
Mark Paluch
2023-09-27 10:52:56 +02:00
parent 0a5ac69784
commit 36b52e1485
3 changed files with 27 additions and 25 deletions

View File

@@ -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<JpaParametersParameterAccessor> captor = ArgumentCaptor.forClass(JpaParametersParameterAccessor.class);
ArgumentCaptor<JpaParametersParameterAccessor> 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<JpaParametersParameterAccessor> captor = ArgumentCaptor.forClass(JpaParametersParameterAccessor.class);
ArgumentCaptor<JpaParametersParameterAccessor> 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<User> 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<User> findByLastnameNativeQuery(String lastname);
@QueryHints(value = { @QueryHint(name = "bar", value = "foo") }, forCounting = false)

View File

@@ -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);
}

View File

@@ -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<EmployeeWithName> result = repository.customQueryWithOptionalParameter(null);
assertThat(result).hasSize(3);