@@ -41,7 +41,7 @@ import org.springframework.util.Assert;
|
||||
* @author Thomas Darimont
|
||||
* @author Jens Schauder
|
||||
* @author Mark Paluch
|
||||
* @author Konstntin Ignatyev
|
||||
* @author Konstantin Ignatyev
|
||||
*/
|
||||
public abstract class AbstractRepositoryMetadata implements RepositoryMetadata {
|
||||
|
||||
@@ -57,7 +57,8 @@ public abstract class AbstractRepositoryMetadata implements RepositoryMetadata {
|
||||
public AbstractRepositoryMetadata(Class<?> repositoryInterface) {
|
||||
|
||||
Assert.notNull(repositoryInterface, "Given type must not be null");
|
||||
Assert.isTrue(repositoryInterface.isInterface(), "Given type ["+ repositoryInterface.getName()+"] must be an interface");
|
||||
Assert.isTrue(repositoryInterface.isInterface(),
|
||||
() -> String.format("Given type %s must be an interface", repositoryInterface.getName()));
|
||||
|
||||
this.repositoryInterface = repositoryInterface;
|
||||
this.typeInformation = TypeInformation.of(repositoryInterface);
|
||||
|
||||
@@ -57,6 +57,7 @@ import org.springframework.util.ClassUtils;
|
||||
* @author Thomas Darimont
|
||||
* @author Jan Zeppenfeld
|
||||
* @author Alessandro Nistico
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@MockitoSettings(strictness = Strictness.LENIENT)
|
||||
@@ -92,9 +93,17 @@ class RepositoriesUnitTests {
|
||||
assertThat(repositories.hasRepositoryFor(Address.class)).isTrue();
|
||||
}
|
||||
|
||||
@Test // GH-3091
|
||||
void reportsOffendingTypeName() {
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> new CustomRepositoryMetadata(String.class))
|
||||
.withMessageContaining("java.lang.String");
|
||||
}
|
||||
|
||||
@Test
|
||||
void doesNotFindInformationForNonManagedDomainClass() {
|
||||
|
||||
var repositories = new Repositories(context);
|
||||
|
||||
assertThat(repositories.hasRepositoryFor(String.class)).isFalse();
|
||||
assertThat(repositories.getRepositoryFor(String.class)).isNotPresent();
|
||||
}
|
||||
@@ -221,13 +230,13 @@ class RepositoriesUnitTests {
|
||||
assertRepositoryAvailableFor(repositories, Child.class, ChildRepository.class);
|
||||
}
|
||||
|
||||
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainTypem,
|
||||
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainType,
|
||||
Class<?> repositoryInterface) {
|
||||
|
||||
assertThat(repositories.hasRepositoryFor(domainTypem)).isTrue();
|
||||
assertThat(repositories.getRepositoryFor(domainTypem))
|
||||
assertThat(repositories.hasRepositoryFor(domainType)).isTrue();
|
||||
assertThat(repositories.getRepositoryFor(domainType))
|
||||
.hasValueSatisfying(it -> assertThat(it).isInstanceOf(repositoryInterface));
|
||||
assertThat(repositories.getRepositoryInformationFor(domainTypem))
|
||||
assertThat(repositories.getRepositoryInformationFor(domainType))
|
||||
.hasValueSatisfying(it -> assertThat(it.getRepositoryInterface()).isEqualTo(repositoryInterface));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user