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 5d90fb9e6a
commit 54f2d150c5

View File

@@ -56,6 +56,7 @@ import org.springframework.util.ClassUtils;
*
* @author Oliver Gierke
* @author Thomas Darimont
* @author Jan Zeppenfeld
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@@ -183,6 +184,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 {}