Use Awaitility in our own tests
Closes gh-18227
This commit is contained in:
@@ -19,6 +19,7 @@ package org.springframework.boot.autoconfigure.orm.jpa;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -27,6 +28,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
@@ -37,6 +39,7 @@ import javax.transaction.TransactionManager;
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.awaitility.Awaitility;
|
||||
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
|
||||
import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
|
||||
import org.hibernate.cfg.AvailableSettings;
|
||||
@@ -77,6 +80,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
/**
|
||||
@@ -387,12 +391,8 @@ class HibernateJpaAutoConfigurationTests extends AbstractJpaAutoConfigurationTes
|
||||
assertThat(context).hasNotFailed();
|
||||
EventCapturingApplicationListener listener = context
|
||||
.getBean(EventCapturingApplicationListener.class);
|
||||
long end = System.currentTimeMillis() + 30000;
|
||||
while ((System.currentTimeMillis() < end) && !dataSourceSchemaCreatedEventReceived(listener)) {
|
||||
Thread.sleep(100);
|
||||
}
|
||||
assertThat(listener.events.stream().filter(DataSourceSchemaCreatedEvent.class::isInstance))
|
||||
.hasSize(1);
|
||||
Awaitility.waitAtMost(Duration.ofSeconds(30))
|
||||
.until(() -> dataSourceSchemaCreatedEventsReceivedBy(listener), hasSize(1));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -408,13 +408,9 @@ class HibernateJpaAutoConfigurationTests extends AbstractJpaAutoConfigurationTes
|
||||
});
|
||||
}
|
||||
|
||||
private boolean dataSourceSchemaCreatedEventReceived(EventCapturingApplicationListener listener) {
|
||||
for (ApplicationEvent event : listener.events) {
|
||||
if (event instanceof DataSourceSchemaCreatedEvent) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
private List<ApplicationEvent> dataSourceSchemaCreatedEventsReceivedBy(EventCapturingApplicationListener listener) {
|
||||
return listener.events.stream().filter(DataSourceSchemaCreatedEvent.class::isInstance)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
|
||||
Reference in New Issue
Block a user