From d4ea22179529ecbbd54d15991f73b728a162201f Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 22 Sep 2020 16:20:24 +0200 Subject: [PATCH] DATAJPA-1782 - Adopt to changes in Spring Data Commons. Update mocks to new behavior. --- .../jpa/repository/query/JpaQueryMethodUnitTests.java | 6 ++++++ .../data/jpa/repository/query/NamedQueryUnitTests.java | 3 +++ .../jpa/repository/query/SimpleJpaQueryUnitTests.java | 9 ++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) 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 14885c127..b0892dfea 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 @@ -32,6 +32,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.core.annotation.AliasFor; import org.springframework.data.domain.Page; @@ -54,6 +55,7 @@ import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.support.DefaultRepositoryMetadata; import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.QueryMethod; +import org.springframework.data.util.ClassTypeInformation; /** * Unit test for {@link QueryMethod}. @@ -62,6 +64,7 @@ import org.springframework.data.repository.query.QueryMethod; * @author Thomas Darimont * @author Christoph Strobl * @author Jens Schauder + * @author Mark Paluch */ @RunWith(MockitoJUnitRunner.class) public class JpaQueryMethodUnitTests { @@ -94,6 +97,9 @@ public class JpaQueryMethodUnitTests { queryMethodWithCustomEntityFetchGraph = ValidRepository.class.getMethod("queryMethodWithCustomEntityFetchGraph", Integer.class); + + when(metadata.getReturnType(any(Method.class))) + .thenAnswer(invocation -> ClassTypeInformation.fromReturnTypeOf(invocation.getArgument(0))); } @Test diff --git a/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java index 3cd21ab5b..eaadb8304 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java @@ -37,6 +37,7 @@ import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.query.QueryCreationException; +import org.springframework.data.util.ClassTypeInformation; /** * Unit tests for {@link NamedQuery}. @@ -65,6 +66,8 @@ public class NamedQueryUnitTests { method = SampleRepository.class.getMethod("foo", Pageable.class); when(metadata.getDomainType()).thenReturn((Class) String.class); when(metadata.getReturnedDomainClass(method)).thenReturn((Class) String.class); + when(metadata.getReturnType(any(Method.class))) + .thenAnswer(invocation -> ClassTypeInformation.fromReturnTypeOf(invocation.getArgument(0))); when(em.getMetamodel()).thenReturn(metamodel); when(em.getEntityManagerFactory()).thenReturn(emf); diff --git a/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java index 253c0b5b8..2e23ebad8 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java @@ -16,9 +16,7 @@ package org.springframework.data.jpa.repository.query; import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.lang.reflect.Method; @@ -39,6 +37,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; + import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -52,6 +51,7 @@ import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.RepositoryQuery; +import org.springframework.data.util.ClassTypeInformation; import org.springframework.expression.spel.standard.SpelExpressionParser; /** @@ -61,6 +61,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser; * @author Thomas Darimont * @author Jens Schauder * @author Tom Hombergs + * @author Mark Paluch */ @RunWith(MockitoJUnitRunner.Silent.class) public class SimpleJpaQueryUnitTests { @@ -96,6 +97,8 @@ public class SimpleJpaQueryUnitTests { when(emf.createEntityManager()).thenReturn(em); when(metadata.getDomainType()).thenReturn((Class) User.class); when(metadata.getReturnedDomainClass(Mockito.any(Method.class))).thenReturn((Class) User.class); + when(metadata.getReturnType(Mockito.any(Method.class))) + .thenAnswer(invocation -> ClassTypeInformation.fromReturnTypeOf(invocation.getArgument(0))); Method setUp = UserRepository.class.getMethod("findByLastname", String.class); method = new JpaQueryMethod(setUp, metadata, factory, extractor);