Skip to content

Commit 857a239

Browse files
committed
Polishing.
Defer message creation. Add test. See #3091
1 parent b822c5f commit 857a239

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/main/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadata.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
* @author Thomas Darimont
4242
* @author Jens Schauder
4343
* @author Mark Paluch
44-
* @author Konstntin Ignatyev
44+
* @author Konstantin Ignatyev
4545
*/
4646
public abstract class AbstractRepositoryMetadata implements RepositoryMetadata {
4747

@@ -57,7 +57,8 @@ public abstract class AbstractRepositoryMetadata implements RepositoryMetadata {
5757
public AbstractRepositoryMetadata(Class<?> repositoryInterface) {
5858

5959
Assert.notNull(repositoryInterface, "Given type must not be null");
60-
Assert.isTrue(repositoryInterface.isInterface(), "Given type ["+ repositoryInterface.getName()+"] must be an interface");
60+
Assert.isTrue(repositoryInterface.isInterface(),
61+
() -> String.format("Given type %s must be an interface", repositoryInterface.getName()));
6162

6263
this.repositoryInterface = repositoryInterface;
6364
this.typeInformation = TypeInformation.of(repositoryInterface);

src/test/java/org/springframework/data/repository/support/RepositoriesUnitTests.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
* @author Thomas Darimont
5858
* @author Jan Zeppenfeld
5959
* @author Alessandro Nistico
60+
* @author Mark Paluch
6061
*/
6162
@ExtendWith(MockitoExtension.class)
6263
@MockitoSettings(strictness = Strictness.LENIENT)
@@ -92,9 +93,17 @@ void doesNotConsiderCrudRepositoriesOnly() {
9293
assertThat(repositories.hasRepositoryFor(Address.class)).isTrue();
9394
}
9495

96+
@Test // GH-3091
97+
void reportsOffendingTypeName() {
98+
assertThatIllegalArgumentException().isThrownBy(() -> new CustomRepositoryMetadata(String.class))
99+
.withMessageContaining("java.lang.String");
100+
}
101+
95102
@Test
96103
void doesNotFindInformationForNonManagedDomainClass() {
104+
97105
var repositories = new Repositories(context);
106+
98107
assertThat(repositories.hasRepositoryFor(String.class)).isFalse();
99108
assertThat(repositories.getRepositoryFor(String.class)).isNotPresent();
100109
}
@@ -221,13 +230,13 @@ void usesChildRepositoryIfRegistered() {
221230
assertRepositoryAvailableFor(repositories, Child.class, ChildRepository.class);
222231
}
223232

224-
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainTypem,
233+
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainType,
225234
Class<?> repositoryInterface) {
226235

227-
assertThat(repositories.hasRepositoryFor(domainTypem)).isTrue();
228-
assertThat(repositories.getRepositoryFor(domainTypem))
236+
assertThat(repositories.hasRepositoryFor(domainType)).isTrue();
237+
assertThat(repositories.getRepositoryFor(domainType))
229238
.hasValueSatisfying(it -> assertThat(it).isInstanceOf(repositoryInterface));
230-
assertThat(repositories.getRepositoryInformationFor(domainTypem))
239+
assertThat(repositories.getRepositoryInformationFor(domainType))
231240
.hasValueSatisfying(it -> assertThat(it.getRepositoryInterface()).isEqualTo(repositoryInterface));
232241
}
233242

0 commit comments

Comments
 (0)