Test for async event publication before listener initialized
Closes gh-20904 See gh-23501 See gh-25799
This commit is contained in:
parent
4a02893c31
commit
874e61a0c6
|
|
@ -567,7 +567,7 @@ class ApplicationContextEventTests extends AbstractApplicationEventListenerTests
|
|||
}
|
||||
|
||||
@Test
|
||||
void initMethodPublishesEvent() {
|
||||
void initMethodPublishesEvent() { // gh-25799
|
||||
GenericApplicationContext context = new GenericApplicationContext();
|
||||
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
|
||||
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
|
||||
|
|
@ -582,7 +582,7 @@ class ApplicationContextEventTests extends AbstractApplicationEventListenerTests
|
|||
}
|
||||
|
||||
@Test
|
||||
void initMethodPublishesAsyncEvent() {
|
||||
void initMethodPublishesAsyncEvent() { // gh-25799
|
||||
GenericApplicationContext context = new GenericApplicationContext();
|
||||
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
|
||||
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
|
||||
|
|
@ -596,6 +596,21 @@ class ApplicationContextEventTests extends AbstractApplicationEventListenerTests
|
|||
context.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
void initMethodPublishesAsyncEventBeforeListenerInitialized() { // gh-20904
|
||||
GenericApplicationContext context = new GenericApplicationContext();
|
||||
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
|
||||
context.registerBeanDefinition("initMethod", new RootBeanDefinition(AsyncEventPublishingInitMethod.class));
|
||||
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
|
||||
context.refresh();
|
||||
|
||||
context.publishEvent(new MyEvent(this));
|
||||
BeanThatListens listener = context.getBean(BeanThatListens.class);
|
||||
assertThat(listener.getEventCount()).isEqualTo(3);
|
||||
|
||||
context.close();
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public static class MyEvent extends ApplicationEvent {
|
||||
|
|
|
|||
Loading…
Reference in New Issue