Add test for Repositories verifying isPrimary flag.

See #1583.
Original pull request: #465.
This commit is contained in:
Jan Zeppenfeld
2021-02-15 15:58:24 +01:00
committed by Mark Paluch
parent 25b135255e
commit 4f3afba7bf

View File

@@ -58,6 +58,7 @@ import org.springframework.util.ClassUtils;
*
* @author Oliver Gierke
* @author Thomas Darimont
* @author Jan Zeppenfeld
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@@ -185,6 +186,28 @@ class RepositoriesUnitTests {
});
}
@Test // DATACMNS-1142
void keepsPrimaryRepositoryInCaseOfMultipleOnesIfContextIsNotAConfigurableListableBeanFactory() {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
beanFactory.registerBeanDefinition("first", getRepositoryBeanDefinition(FirstRepository.class));
AbstractBeanDefinition definition = getRepositoryBeanDefinition(PrimaryRepository.class);
definition.setPrimary(true);
beanFactory.registerBeanDefinition("primary", definition);
beanFactory.registerBeanDefinition("third", getRepositoryBeanDefinition(ThirdRepository.class));
context = new GenericApplicationContext(beanFactory);
context.refresh();
Repositories repositories = new Repositories(context);
assertThat(repositories.getRepositoryFor(SomeEntity.class)).hasValueSatisfying(it -> {
assertThat(it).isInstanceOf(PrimaryRepository.class);
});
}
class Person {}
class Address {}