Class DefaultTestContext
- java.lang.Object
- org.springframework.test.context.support.DefaultTestContext
- All Implemented Interfaces:
Serializable,AttributeAccessor,TestContext
public class DefaultTestContext extends Object implements TestContext
Default implementation of theTestContextinterface.- Since:
- 4.0
- Author:
- Sam Brannen, Juergen Hoeller, Rob Harrop
- See Also:
- Serialized Form
Constructor Summary
Constructors Constructor Description DefaultTestContext(Class<?> testClass, MergedContextConfiguration mergedContextConfiguration, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate)Construct a newDefaultTestContextfrom the supplied arguments.DefaultTestContext(DefaultTestContext testContext)Copy constructor for creating a newDefaultTestContextbased on the attributes and immutable state of the supplied context.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String[]attributeNames()Return the names of all attributes.ApplicationContextgetApplicationContext()Get the application context for this test context.ObjectgetAttribute(String name)Get the value of the attribute identified byname.Class<?>getTestClass()Get the test class for this test context.ThrowablegetTestException()Get the exception that was thrown during execution of the test method.ObjectgetTestInstance()Get the current test instance for this test context.MethodgetTestMethod()Get the current test method for this test context.booleanhasApplicationContext()Determine if the application context for this test context is present in the context cache.booleanhasAttribute(String name)Returntrueif the attribute identified bynameexists.voidmarkApplicationContextDirty(DirtiesContext.HierarchyMode hierarchyMode)Mark the application context associated with this test context as dirty (i.e., by removing it from the context cache and closing it).ObjectremoveAttribute(String name)Remove the attribute identified bynameand return its value.voidsetAttribute(String name, Object value)Set the attribute defined bynameto the suppliedvalue.StringtoString()Provide a String representation of this test context's state.voidupdateState(Object testInstance, Method testMethod, Throwable testException)Update this test context to reflect the state of the currently executing test.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.test.context.TestContext
publishEvent
Constructor Detail
DefaultTestContext
public DefaultTestContext(DefaultTestContext testContext)
Copy constructor for creating a newDefaultTestContextbased on the attributes and immutable state of the supplied context.Immutable state includes all arguments supplied to the standard constructor.
- Throws:
NullPointerException- if the suppliedDefaultTestContextisnull
DefaultTestContext
public DefaultTestContext(Class<?> testClass, MergedContextConfiguration mergedContextConfiguration, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate)
Construct a newDefaultTestContextfrom the supplied arguments.- Parameters:
testClass- the test class for this test contextmergedContextConfiguration- the merged application context configuration for this test contextcacheAwareContextLoaderDelegate- the delegate to use for loading and closing the application context for this test context
Method Detail
hasApplicationContext
public boolean hasApplicationContext()
Determine if the application context for this test context is present in the context cache.- Specified by:
hasApplicationContextin interfaceTestContext- Returns:
trueif the application context has already been loaded and stored in the context cache- Since:
- 5.2
- See Also:
getApplicationContext(),CacheAwareContextLoaderDelegate.isContextLoaded(org.springframework.test.context.MergedContextConfiguration)
getApplicationContext
public ApplicationContext getApplicationContext()
Get the application context for this test context.The default implementation delegates to the
CacheAwareContextLoaderDelegatethat was supplied when thisTestContextwas constructed.- Specified by:
getApplicationContextin interfaceTestContext- Returns:
- the application context (never
null) - Throws:
IllegalStateException- if the context returned by the context loader delegate is not active (i.e., has been closed)- See Also:
CacheAwareContextLoaderDelegate.loadContext(org.springframework.test.context.MergedContextConfiguration)
markApplicationContextDirty
public void markApplicationContextDirty(@Nullable DirtiesContext.HierarchyMode hierarchyMode)
Mark the application context associated with this test context as dirty (i.e., by removing it from the context cache and closing it).The default implementation delegates to the
CacheAwareContextLoaderDelegatethat was supplied when thisTestContextwas constructed.- Specified by:
markApplicationContextDirtyin interfaceTestContext- Parameters:
hierarchyMode- the context cache clearing mode to be applied if the context is part of a hierarchy (may benull)- See Also:
CacheAwareContextLoaderDelegate.closeContext(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)
getTestClass
public final Class<?> getTestClass()
Description copied from interface:TestContextGet the test class for this test context.- Specified by:
getTestClassin interfaceTestContext- Returns:
- the test class (never
null)
getTestInstance
public final Object getTestInstance()
Description copied from interface:TestContextGet the current test instance for this test context.Note: this is a mutable property.
- Specified by:
getTestInstancein interfaceTestContext- Returns:
- the current test instance (never
null) - See Also:
TestContext.updateState(Object, Method, Throwable)
getTestMethod
public final Method getTestMethod()
Description copied from interface:TestContextGet the current test method for this test context.Note: this is a mutable property.
- Specified by:
getTestMethodin interfaceTestContext- Returns:
- the current test method (never
null) - See Also:
TestContext.updateState(Object, Method, Throwable)
getTestException
@Nullable public final Throwable getTestException()
Description copied from interface:TestContextGet the exception that was thrown during execution of the test method.Note: this is a mutable property.
- Specified by:
getTestExceptionin interfaceTestContext- Returns:
- the exception that was thrown, or
nullif no exception was thrown - See Also:
TestContext.updateState(Object, Method, Throwable)
updateState
public void updateState(@Nullable Object testInstance, @Nullable Method testMethod, @Nullable Throwable testException)
Description copied from interface:TestContextUpdate this test context to reflect the state of the currently executing test.WARNING: This method should only be invoked by the
TestContextManager.Caution: concurrent invocations of this method might not be thread-safe, depending on the underlying implementation.
- Specified by:
updateStatein interfaceTestContext- Parameters:
testInstance- the current test instance (may benull)testMethod- the current test method (may benull)testException- the exception that was thrown in the test method, ornullif no exception was thrown
setAttribute
public void setAttribute(String name, @Nullable Object value)
Description copied from interface:AttributeAccessorSet the attribute defined bynameto the suppliedvalue. Ifvalueisnull, the attribute isremoved.In general, users should take care to prevent overlaps with other metadata attributes by using fully-qualified names, perhaps using class or package names as prefix.
- Specified by:
setAttributein interfaceAttributeAccessor- Parameters:
name- the unique attribute keyvalue- the attribute value to be attached
getAttribute
@Nullable public Object getAttribute(String name)
Description copied from interface:AttributeAccessorGet the value of the attribute identified byname. Returnnullif the attribute doesn't exist.- Specified by:
getAttributein interfaceAttributeAccessor- Parameters:
name- the unique attribute key- Returns:
- the current value of the attribute, if any
removeAttribute
@Nullable public Object removeAttribute(String name)
Description copied from interface:AttributeAccessorRemove the attribute identified bynameand return its value. Returnnullif no attribute undernameis found.- Specified by:
removeAttributein interfaceAttributeAccessor- Parameters:
name- the unique attribute key- Returns:
- the last value of the attribute, if any
hasAttribute
public boolean hasAttribute(String name)
Description copied from interface:AttributeAccessorReturntrueif the attribute identified bynameexists. Otherwise returnfalse.- Specified by:
hasAttributein interfaceAttributeAccessor- Parameters:
name- the unique attribute key
attributeNames
public String[] attributeNames()
Description copied from interface:AttributeAccessorReturn the names of all attributes.- Specified by:
attributeNamesin interfaceAttributeAccessor