Skip to content

Commit 64b412c

Browse files
committed
Polishing.
Defer message creation. Add test. See #3091
1 parent a1672eb commit 64b412c

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

Diff for: 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);

Diff for: src/test/java/org/springframework/data/repository/support/RepositoriesUnitTests.java

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

97+
@Test // GH-3091
98+
void reportsOffendingTypeName() {
99+
assertThatIllegalArgumentException().isThrownBy(() -> new CustomRepositoryMetadata(String.class))
100+
.withMessageContaining("java.lang.String");
101+
}
102+
96103
@Test
97104
void doesNotFindInformationForNonManagedDomainClass() {
105+
98106
var repositories = new Repositories(context);
107+
99108
assertThat(repositories.hasRepositoryFor(String.class)).isFalse();
100109
assertThat(repositories.getRepositoryFor(String.class)).isNotPresent();
101110
}
@@ -222,13 +231,13 @@ void usesChildRepositoryIfRegistered() {
222231
assertRepositoryAvailableFor(repositories, Child.class, ChildRepository.class);
223232
}
224233

225-
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainTypem,
234+
private void assertRepositoryAvailableFor(Repositories repositories, Class<?> domainType,
226235
Class<?> repositoryInterface) {
227236

228-
assertThat(repositories.hasRepositoryFor(domainTypem)).isTrue();
229-
assertThat(repositories.getRepositoryFor(domainTypem))
237+
assertThat(repositories.hasRepositoryFor(domainType)).isTrue();
238+
assertThat(repositories.getRepositoryFor(domainType))
230239
.hasValueSatisfying(it -> assertThat(it).isInstanceOf(repositoryInterface));
231-
assertThat(repositories.getRepositoryInformationFor(domainTypem))
240+
assertThat(repositories.getRepositoryInformationFor(domainType))
232241
.hasValueSatisfying(it -> assertThat(it.getRepositoryInterface()).isEqualTo(repositoryInterface));
233242
}
234243

0 commit comments

Comments
 (0)