Package com.azure.core.test
Class TestBase
java.lang.Object
com.azure.core.test.TestBase
- All Implemented Interfaces:
org.junit.jupiter.api.extension.BeforeEachCallback,org.junit.jupiter.api.extension.Extension
- Direct Known Subclasses:
TestProxyTestBase
public abstract class TestBase
extends Object
implements org.junit.jupiter.api.extension.BeforeEachCallback
Base class for running live and playback tests using
InterceptorManager.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringSpecifies to use all HttpClient implementations in testing.static final StringSpecifies to use Netty HttpClient implementation in testing.static final StringSpecifies to use all service versions in testing.protected InterceptorManagerInterceptorManagerused for this test run.protected TestContextManagerTestContextManagerused for this test run.protected com.azure.core.test.utils.TestResourceNamerTestResourceNamerused for this test run. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidDispose of any resources and clean-up after a test case runs.voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext) protected voidPerforms any set-up before each test case.protected HttpClientgetHttpClientOrUsePlayback(HttpClient httpClient) Convenience method which either returned the passedHttpClientor returns aPlaybackClientdepending on whether the test mode is playback.static Stream<HttpClient>Returns a list ofHttpClientsthat should be tested.protected PathReturns the path of the class to which the test belongs.Gets the TestMode that has been initialized.protected StringDeprecated.protected static booleanIndicates whether the out of process test recording proxy is in use.protected <T,U> PollerFlux<T, U> setPlaybackPollerFluxPollInterval(PollerFlux<T, U> pollerFlux) Sets the polling interval for the passedPollerFlux.protected <T,U> SyncPoller<T, U> setPlaybackSyncPollerPollInterval(SyncPoller<T, U> syncPoller) Sets the polling interval for the passedSyncPoller.protected static voidEnables use of the test proxy.static voidBefore tests are executed, determines the test mode by reading theAZURE_TEST_MODEenvironment variable.voidsetupTest(org.junit.jupiter.api.TestInfo testInfo) Sets-up thetestResourceNamerandinterceptorManagerbefore each test case is run.static booleanshouldClientBeTested(HttpClient client) Returns whether the given http clients match the rules of test framework.protected voidsleepIfRunningAgainstService(long millis) Sleeps the test for the given amount of milliseconds ifTestModeisn'tTestMode.PLAYBACK.voidteardownTest(org.junit.jupiter.api.TestInfo testInfo) Disposes ofInterceptorManagerand its inheriting class' resources.
-
Field Details
-
AZURE_TEST_HTTP_CLIENTS_VALUE_ALL
Specifies to use all HttpClient implementations in testing.- See Also:
-
AZURE_TEST_HTTP_CLIENTS_VALUE_NETTY
Specifies to use Netty HttpClient implementation in testing.- See Also:
-
AZURE_TEST_SERVICE_VERSIONS_VALUE_ALL
Specifies to use all service versions in testing.- See Also:
-
interceptorManager
InterceptorManagerused for this test run. -
testResourceNamer
protected com.azure.core.test.utils.TestResourceNamer testResourceNamerTestResourceNamerused for this test run. -
testContextManager
TestContextManagerused for this test run.
-
-
Constructor Details
-
TestBase
public TestBase()Creates a new instance ofTestBase.
-
-
Method Details
-
setupClass
@BeforeAll public static void setupClass()Before tests are executed, determines the test mode by reading theAZURE_TEST_MODEenvironment variable. If it is not set,TestMode.PLAYBACK -
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext) - Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
setupTest
@BeforeEach public void setupTest(org.junit.jupiter.api.TestInfo testInfo) Sets-up thetestResourceNamerandinterceptorManagerbefore each test case is run. Then calls its implementing class to perform any other set-up commands.- Parameters:
testInfo-TestInfoto retrieve test method name.
-
teardownTest
@AfterEach public void teardownTest(org.junit.jupiter.api.TestInfo testInfo) Disposes ofInterceptorManagerand its inheriting class' resources.- Parameters:
testInfo- the injected testInfo
-
getTestMode
Gets the TestMode that has been initialized.- Returns:
- The TestMode that has been initialized.
-
getTestName
Deprecated.This method is deprecated as JUnit 5 provides a simpler mechanism to get the test method name throughTestInfo. Keeping this for backward compatability of other client libraries that still override this method. This method can be deleted when all client libraries remove this method. SeesetupTest(TestInfo).Gets the name of the current test being run.- Returns:
- The name of the current test.
-
beforeTest
protected void beforeTest()Performs any set-up before each test case. Any initialization that occurs in TestBase occurs first before this. Can be overridden in an inheriting class to add additional functionality during test set-up. -
afterTest
protected void afterTest()Dispose of any resources and clean-up after a test case runs. Can be overridden in an inheriting class to add additional functionality during test teardown. -
getHttpClients
Returns a list ofHttpClientsthat should be tested.- Returns:
- A list of
HttpClientsto be tested.
-
shouldClientBeTested
Returns whether the given http clients match the rules of test framework.- Using Netty http client as default if no environment variable is set.
- If it's set to ALL, all HttpClients in the classpath will be tested.
- Otherwise, the name of the HttpClient class should match env variable.
set AZURE_TEST_HTTP_CLIENTS = NettyAsyncHttpClient, OkHttpAsyncHttpClient- Parameters:
client- Http client needs to check- Returns:
- Boolean indicates whether filters out the client or not.
-
isTestProxyEnabled
protected static boolean isTestProxyEnabled()Indicates whether the out of process test recording proxy is in use.- Returns:
- true if test proxy is to be used.
-
setTestProxyEnabled
protected static void setTestProxyEnabled()Enables use of the test proxy. -
getTestClassPath
Returns the path of the class to which the test belongs.- Returns:
- The file path of the test class.
-
sleepIfRunningAgainstService
protected void sleepIfRunningAgainstService(long millis) Sleeps the test for the given amount of milliseconds ifTestModeisn'tTestMode.PLAYBACK.- Parameters:
millis- Number of milliseconds to sleep the test.- Throws:
IllegalStateException- If the sleep is interrupted.
-
setPlaybackSyncPollerPollInterval
Sets the polling interval for the passedSyncPoller.This configures the
SyncPollerto use a poll interval of one millisecond if the test mode is playback. In live or record test mode the polling interval is left as-is.- Type Parameters:
T- The type of poll response value.U- The type of the final result of long-running operation.- Parameters:
syncPoller- TheSyncPoller.- Returns:
- The updated
SyncPoller.
-
setPlaybackPollerFluxPollInterval
Sets the polling interval for the passedPollerFlux.This configures the
PollerFluxto use a poll interval of one millisecond if the test mode is playback. In live or record test mode the polling interval is left as-is.- Type Parameters:
T- The type of poll response value.U- The type of the final result of long-running operation.- Parameters:
pollerFlux- ThePollerFlux.- Returns:
- The updated
PollerFlux.
-
getHttpClientOrUsePlayback
Convenience method which either returned the passedHttpClientor returns aPlaybackClientdepending on whether the test mode is playback.When the test mode is playback the
PlaybackClientcorresponding to the test will be returned, otherwise the passedHttpClientwill be returned.- Parameters:
httpClient- The initialHttpClientthat will be used.- Returns:
- Either the passed
HttpClientorPlaybackClientbased on the test mode.
-
TestInfo.