From efaa6dd1ccdf6416a7a88e33ffaa3a370dae8de7 Mon Sep 17 00:00:00 2001 From: SergiiTsypanov Date: Thu, 26 Dec 2019 15:47:59 +0200 Subject: [PATCH] DATAJPA-1654 - Ensure repositories in tests declare the correct ID type. --- .../cdi/QualifiedCustomizedUserRepository.java | 2 +- .../JpaCountQueryCreatorIntegrationTests.java | 2 +- .../query/JpaQueryLookupStrategyUnitTests.java | 2 +- .../repository/query/JpaQueryMethodUnitTests.java | 15 +++++++-------- .../query/PartTreeJpaQueryIntegrationTests.java | 12 +++++++++++- .../sample/AuditableUserRepository.java | 2 +- .../jpa/repository/sample/DummyRepository.java | 2 +- .../RedeclaringRepositoryMethodsRepository.java | 2 +- .../JpaEntityInformationSupportUnitTests.java | 2 +- .../support/SimpleJpaRepositoryUnitTests.java | 2 +- 10 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java b/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java index cded2f798..8dc4b11b9 100644 --- a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java @@ -22,7 +22,7 @@ import org.springframework.data.repository.Repository; * @author Mark Paluch */ @UserDB -public interface QualifiedCustomizedUserRepository extends Repository, +public interface QualifiedCustomizedUserRepository extends Repository, QualifiedCustomizedUserRepositoryCustom, QualifiedFragment { } diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java index ce34f56d8..51f854ca5 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java @@ -70,7 +70,7 @@ public class JpaCountQueryCreatorIntegrationTests { assertThat(HibernateUtils.getHibernateQuery(query)).startsWith("select distinct count(distinct"); } - interface SomeRepository extends Repository { + interface SomeRepository extends Repository { void findDistinctByRolesIn(List roles); } } diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java index 39ea1b780..539cbfa6d 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java @@ -102,7 +102,7 @@ public class JpaQueryLookupStrategyUnitTests { .withMessageContaining(method.toString()); } - interface UserRepository extends Repository { + interface UserRepository extends Repository { @Query("something absurd") User findByFoo(String foo); diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java index 9d9e1d96d..a428177e9 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java @@ -66,7 +66,6 @@ import org.springframework.data.repository.query.QueryMethod; @RunWith(MockitoJUnitRunner.class) public class JpaQueryMethodUnitTests { - static final Class DOMAIN_CLASS = User.class; static final String METHOD_NAME = "findByFirstname"; @Mock QueryExtractor extractor; @@ -328,7 +327,7 @@ public class JpaQueryMethodUnitTests { doReturn(User.class).when(metadata).getDomainType(); doReturn(User.class).when(metadata).getReturnedDomainClass((Method) any()); - JpaQueryMethod method = new JpaQueryMethod(JpaRepositoryOverride.class.getMethod("findOne", Long.class), metadata, + JpaQueryMethod method = new JpaQueryMethod(JpaRepositoryOverride.class.getMethod("findOne", Integer.class), metadata, factory, extractor); assertThat(method.getEntityGraph()).isNotNull(); @@ -345,7 +344,7 @@ public class JpaQueryMethodUnitTests { doReturn(User.class).when(metadata).getDomainType(); doReturn(User.class).when(metadata).getReturnedDomainClass((Method) any()); - JpaQueryMethod method = new JpaQueryMethod(JpaRepositoryOverride.class.getMethod("getOneById", Long.class), + JpaQueryMethod method = new JpaQueryMethod(JpaRepositoryOverride.class.getMethod("getOneById", Integer.class), metadata, factory, extractor); assertThat(method.getEntityGraph()).isNotNull(); @@ -469,7 +468,7 @@ public class JpaQueryMethodUnitTests { * * @author Oliver Gierke */ - static interface InvalidRepository extends Repository { + interface InvalidRepository extends Repository { // Invalid return type User findByFirstname(String firstname, Pageable pageable); @@ -500,7 +499,7 @@ public class JpaQueryMethodUnitTests { List findByAnnotatedQuery(@Param("param") String param); } - static interface ValidRepository extends Repository { + interface ValidRepository extends Repository { @Query(value = "query", nativeQuery = true) List findByLastname(String lastname); @@ -530,7 +529,7 @@ public class JpaQueryMethodUnitTests { void withMetaAnnotationUsingAliasFor(); } - static interface JpaRepositoryOverride extends JpaRepository { + interface JpaRepositoryOverride extends JpaRepository { /** * DATAJPA-612 @@ -543,13 +542,13 @@ public class JpaQueryMethodUnitTests { * DATAJPA-689 */ @EntityGraph("User.detail") - Optional findOne(Long id); + Optional findOne(Integer id); /** * DATAJPA-696 */ @EntityGraph - User getOneById(Long id); + User getOneById(Integer id); @CustomComposedEntityGraphAnnotationWithAliasFor User getOneWithCustomEntityGraphAnnotation(); diff --git a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java index 3a522cd2e..e54057275 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java @@ -22,6 +22,7 @@ import static org.springframework.test.util.ReflectionTestUtils.*; import java.lang.reflect.Method; import java.util.Arrays; +import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -242,7 +243,7 @@ public class PartTreeJpaQueryIntegrationTests { } @SuppressWarnings("unused") - interface UserRepository extends Repository { + interface UserRepository extends Repository { Page findByFirstname(String firstname, Pageable pageable); @@ -260,6 +261,15 @@ public class PartTreeJpaQueryIntegrationTests { List findByFirstnameIsEmpty(); + // should fail, since we can't compare scalar values to collections + List findById(Collection ids); + + // should fail, since we can't do an IN on a scalar + List findByIdIn(Long id); + + // should succeed + List findByFirstnameIn(Iterable id); + // Wrong number of parameters User findByFirstname(); diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java b/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java index 5a222d0ae..f44139ca0 100644 --- a/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java @@ -28,7 +28,7 @@ import org.springframework.data.jpa.repository.Query; * @author Oliver Gierke * @author Thomas Darimont */ -public interface AuditableUserRepository extends JpaRepository { +public interface AuditableUserRepository extends JpaRepository { /** * Returns all users with the given firstname. diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java b/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java index 657f497f5..47bb91c71 100644 --- a/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java @@ -23,7 +23,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.transaction.annotation.Transactional; @Transactional -public interface DummyRepository extends CrudRepository { +public interface DummyRepository extends CrudRepository { @Procedure("procedure_in1_out1") Integer adHocProcedureWith1InputAnd1OutputParameter(Integer in); diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java b/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java index fc38e3995..d1f554357 100644 --- a/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java @@ -29,7 +29,7 @@ import org.springframework.data.repository.CrudRepository; * * @author Thomas Darimont */ -public interface RedeclaringRepositoryMethodsRepository extends CrudRepository { +public interface RedeclaringRepositoryMethodsRepository extends CrudRepository { /** * Should not find any users at all. diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java index e0dc37f3b..0f264390b 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java @@ -46,7 +46,7 @@ public class JpaEntityInformationSupportUnitTests { @Test public void usesSimpleClassNameIfNoEntityNameGiven() throws Exception { - JpaEntityInformation information = new DummyJpaEntityInformation(User.class); + JpaEntityInformation information = new DummyJpaEntityInformation<>(User.class); assertThat(information.getEntityName()).isEqualTo("User"); JpaEntityInformation second = new DummyJpaEntityInformation(NamedUser.class); diff --git a/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java index 5c6dbcc88..afe1e232d 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java @@ -57,7 +57,7 @@ public class SimpleJpaRepositoryUnitTests { @Mock CriteriaQuery countCriteriaQuery; @Mock TypedQuery query; @Mock TypedQuery countQuery; - @Mock JpaEntityInformation information; + @Mock JpaEntityInformation information; @Mock CrudMethodMetadata metadata; @Mock EntityGraph entityGraph; @Mock org.springframework.data.jpa.repository.EntityGraph entityGraphAnnotation;