From 14c2b5b766b186146a00db3fef2f3131e8676faf Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 16 Aug 2018 14:06:01 +0200 Subject: [PATCH] DATACMNS-1375 - AnnotationRepositoryMetadata now exposes the offending repository name. --- .../core/support/AnnotationRepositoryMetadata.java | 6 ++++-- .../core/support/AnnotationRepositoryMetadataUnitTests.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java b/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java index 80c9573ff..f5c3db039 100644 --- a/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java +++ b/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java @@ -28,7 +28,7 @@ import org.springframework.util.Assert; */ public class AnnotationRepositoryMetadata extends AbstractRepositoryMetadata { - private static final String NO_ANNOTATION_FOUND = String.format("Interface must be annotated with @%s!", + private static final String NO_ANNOTATION_FOUND = String.format("Interface %%s must be annotated with @%s!", RepositoryDefinition.class.getName()); private final Class idType; @@ -43,7 +43,9 @@ public class AnnotationRepositoryMetadata extends AbstractRepositoryMetadata { public AnnotationRepositoryMetadata(Class repositoryInterface) { super(repositoryInterface); - Assert.isTrue(repositoryInterface.isAnnotationPresent(RepositoryDefinition.class), NO_ANNOTATION_FOUND); + + Assert.isTrue(repositoryInterface.isAnnotationPresent(RepositoryDefinition.class), + String.format(NO_ANNOTATION_FOUND, repositoryInterface.getName())); this.idType = resolveIdType(repositoryInterface); this.domainType = resolveDomainType(repositoryInterface); diff --git a/src/test/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadataUnitTests.java b/src/test/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadataUnitTests.java index 4db578538..e4d599061 100755 --- a/src/test/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadataUnitTests.java +++ b/src/test/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadataUnitTests.java @@ -37,10 +37,12 @@ public class AnnotationRepositoryMetadataUnitTests { assertThat(metadata.getIdType()).isEqualTo(Integer.class); } - @Test(expected = IllegalArgumentException.class) + @Test // DATACMNS-37, DATACMNS-1375 public void preventsUnannotatedInterface() { - new AnnotationRepositoryMetadata(UnannotatedRepository.class); + assertThatExceptionOfType(IllegalArgumentException.class) // + .isThrownBy(() -> new AnnotationRepositoryMetadata(UnannotatedRepository.class)) // + .withMessageContaining(UnannotatedRepository.class.getName()); } @SuppressWarnings("unused")