Search in sources :

Example 16 with RepositoryMetadata

use of org.springframework.data.repository.core.RepositoryMetadata in project spring-data-commons by spring-projects.

the class DefaultRepositoryInformationUnitTests method considersIntermediateMethodsAsFinderMethods.

@Test
public void considersIntermediateMethodsAsFinderMethods() {
    RepositoryMetadata metadata = new DefaultRepositoryMetadata(ConcreteRepository.class);
    RepositoryInformation information = new DefaultRepositoryInformation(metadata, CrudRepository.class, RepositoryComposition.empty());
    assertThat(information.hasCustomMethod()).isFalse();
}
Also used : RepositoryMetadata(org.springframework.data.repository.core.RepositoryMetadata) RepositoryInformation(org.springframework.data.repository.core.RepositoryInformation) Test(org.junit.Test)

Example 17 with RepositoryMetadata

use of org.springframework.data.repository.core.RepositoryMetadata in project spring-data-commons by spring-projects.

the class DefaultRepositoryInformationUnitTests method onlyReturnsMostConcreteQueryMethod.

@Test
public void onlyReturnsMostConcreteQueryMethod() throws Exception {
    RepositoryMetadata metadata = new DefaultRepositoryMetadata(ConcreteRepository.class);
    RepositoryInformation information = new DefaultRepositoryInformation(metadata, CrudRepository.class, RepositoryComposition.empty());
    Method intermediateMethod = BaseRepository.class.getMethod("genericMethodToOverride", String.class);
    Method concreteMethod = ConcreteRepository.class.getMethod("genericMethodToOverride", String.class);
    Iterable<Method> queryMethods = information.getQueryMethods();
    assertThat(queryMethods).contains(concreteMethod);
    assertThat(queryMethods).doesNotContain(intermediateMethod);
}
Also used : RepositoryMetadata(org.springframework.data.repository.core.RepositoryMetadata) Method(java.lang.reflect.Method) RepositoryInformation(org.springframework.data.repository.core.RepositoryInformation) Test(org.junit.Test)

Example 18 with RepositoryMetadata

use of org.springframework.data.repository.core.RepositoryMetadata in project spring-data-commons by spring-projects.

the class DefaultRepositoryInformationUnitTests method getQueryShouldNotReturnAnyBridgeMethods.

// DATACMNS-441
@Test
public void getQueryShouldNotReturnAnyBridgeMethods() {
    RepositoryMetadata metadata = new DefaultRepositoryMetadata(CustomDefaultRepositoryMethodsRepository.class);
    RepositoryInformation information = new DefaultRepositoryInformation(metadata, CrudRepository.class, RepositoryComposition.empty());
    assertThat(information.getQueryMethods()).allMatch(method -> !method.isBridge());
}
Also used : RepositoryMetadata(org.springframework.data.repository.core.RepositoryMetadata) RepositoryInformation(org.springframework.data.repository.core.RepositoryInformation) Test(org.junit.Test)

Example 19 with RepositoryMetadata

use of org.springframework.data.repository.core.RepositoryMetadata in project spring-data-commons by spring-projects.

the class DefaultRepositoryInformationUnitTests method discoveresNonRepositoryBaseClassMethod.

@Test
public void discoveresNonRepositoryBaseClassMethod() throws Exception {
    Method method = FooRepository.class.getMethod("findById", Long.class);
    RepositoryMetadata metadata = new DefaultRepositoryMetadata(FooRepository.class);
    DefaultRepositoryInformation information = new DefaultRepositoryInformation(metadata, CrudRepository.class, RepositoryComposition.empty().withMethodLookup(MethodLookups.forRepositoryTypes(metadata)));
    assertThat(information.getTargetClassMethod(method)).isEqualTo(method);
}
Also used : RepositoryMetadata(org.springframework.data.repository.core.RepositoryMetadata) Method(java.lang.reflect.Method) Test(org.junit.Test)

Example 20 with RepositoryMetadata

use of org.springframework.data.repository.core.RepositoryMetadata in project spring-data-commons by spring-projects.

the class DefaultRepositoryInformationUnitTests method doesNotConsiderRedeclaredSaveMethodAQueryMethod.

// DATACMNS-151
@Test
public void doesNotConsiderRedeclaredSaveMethodAQueryMethod() throws Exception {
    RepositoryMetadata metadata = new DefaultRepositoryMetadata(ConcreteRepository.class);
    RepositoryInformation information = new DefaultRepositoryInformation(metadata, CrudRepository.class, RepositoryComposition.empty());
    Method saveMethod = BaseRepository.class.getMethod("save", Object.class);
    Method deleteMethod = BaseRepository.class.getMethod("delete", Object.class);
    Iterable<Method> queryMethods = information.getQueryMethods();
    assertThat(queryMethods).doesNotContain(saveMethod, deleteMethod);
}
Also used : RepositoryMetadata(org.springframework.data.repository.core.RepositoryMetadata) Method(java.lang.reflect.Method) RepositoryInformation(org.springframework.data.repository.core.RepositoryInformation) Test(org.junit.Test)

Aggregations

RepositoryMetadata (org.springframework.data.repository.core.RepositoryMetadata)60 Test (org.junit.Test)52 Method (java.lang.reflect.Method)37 RepositoryInformation (org.springframework.data.repository.core.RepositoryInformation)17 DefaultRepositoryMetadata (org.springframework.data.repository.core.support.DefaultRepositoryMetadata)16 AbstractRepositoryMetadata (org.springframework.data.repository.core.support.AbstractRepositoryMetadata)4 GenericConversionService (org.springframework.core.convert.support.GenericConversionService)3 ProjectionFactory (org.springframework.data.projection.ProjectionFactory)3 DefaultFormattingConversionService (org.springframework.format.support.DefaultFormattingConversionService)3 SpelAwareProxyProjectionFactory (org.springframework.data.projection.SpelAwareProxyProjectionFactory)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 ProxyFactory (org.springframework.aop.framework.ProxyFactory)1 BeanDefinition (org.springframework.beans.factory.config.BeanDefinition)1 AbstractBeanDefinition (org.springframework.beans.factory.support.AbstractBeanDefinition)1 GenericApplicationContext (org.springframework.context.support.GenericApplicationContext)1 SpelQueryCreator (org.springframework.data.keyvalue.repository.query.SpelQueryCreator)1 DefaultMethodInvokingMethodInterceptor (org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor)1 ParametersParameterAccessor (org.springframework.data.repository.query.ParametersParameterAccessor)1 QueryMethod (org.springframework.data.repository.query.QueryMethod)1