Interface ApplicationContextAssertProvider<C extends ApplicationContext>

Type Parameters:
C - the application context type
All Superinterfaces:
ApplicationContext, ApplicationEventPublisher, org.assertj.core.api.AssertProvider<ApplicationContextAssert<C>>, AutoCloseable, BeanFactory, Closeable, EnvironmentCapable, HierarchicalBeanFactory, ListableBeanFactory, MessageSource, ResourceLoader, ResourcePatternResolver
All Known Subinterfaces:
AssertableApplicationContext, AssertableReactiveWebApplicationContext, AssertableWebApplicationContext

public interface ApplicationContextAssertProvider<C extends ApplicationContext> extends ApplicationContext, org.assertj.core.api.AssertProvider<ApplicationContextAssert<C>>, Closeable
An ApplicationContext that additionally supports AssertJ style assertions. Can be used to decorate an existing application context or an application context that failed to start.

Assertions can be applied using the standard AssertJ assertThat(...) style (see ApplicationContextAssert for a complete list). For example:

 assertThat(applicationContext).hasSingleBean(MyBean.class);
 

If the original ApplicationContext is needed for any reason the getSourceApplicationContext() method can be used.

Any ApplicationContext method called on a context that has failed to start will throw an IllegalStateException.

Since:
2.0.0
Author:
Phillip Webb
See Also:
  • Method Details

    • assertThat

      Deprecated.
      to prevent accidental use. Prefer standard AssertJ assertThat(context)... calls instead.
      Return an assert for AspectJ.
      Specified by:
      assertThat in interface org.assertj.core.api.AssertProvider<C extends ApplicationContext>
      Returns:
      an AspectJ assert
    • getSourceApplicationContext

      C getSourceApplicationContext()
      Return the original source ApplicationContext.
      Returns:
      the source application context
      Throws:
      IllegalStateException - if the source context failed to start
    • getSourceApplicationContext

      <T extends C> T getSourceApplicationContext(Class<T> requiredType)
      Return the original source ApplicationContext, casting it to the requested type.
      Type Parameters:
      T - the context type
      Parameters:
      requiredType - the required context type
      Returns:
      the source application context
      Throws:
      IllegalStateException - if the source context failed to start
    • getStartupFailure

      Throwable getStartupFailure()
      Return the failure that caused application context to fail or null if the context started without issue.
      Returns:
      the startup failure or null
    • close

      void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • get

      static <T extends ApplicationContextAssertProvider<C>, C extends ApplicationContext> T get(Class<T> type, Class<? extends C> contextType, Supplier<? extends C> contextSupplier)
      Factory method to create a new ApplicationContextAssertProvider instance.
      Type Parameters:
      T - the assert provider type
      C - the context type
      Parameters:
      type - the type of ApplicationContextAssertProvider required (must be an interface)
      contextType - the type of ApplicationContext being managed (must be an interface)
      contextSupplier - a supplier that will either return a fully configured ApplicationContext or throw an exception if the context fails to start.
      Returns:
      a ApplicationContextAssertProvider instance