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
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
Modifier and TypeFieldDescriptionstatic final String
Specifies to use all HttpClient implementations in testing.static final String
Specifies to use Netty HttpClient implementation in testing.static final String
Specifies to use all service versions in testing.protected InterceptorManager
InterceptorManager
used for this test run.protected TestContextManager
TestContextManager
used for this test run.protected com.azure.core.test.utils.TestResourceNamer
TestResourceNamer
used for this test run. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Dispose of any resources and clean-up after a test case runs.void
beforeEach
(org.junit.jupiter.api.extension.ExtensionContext extensionContext) protected void
Performs any set-up before each test case.protected HttpClient
getHttpClientOrUsePlayback
(HttpClient httpClient) Convenience method which either returned the passedHttpClient
or returns aPlaybackClient
depending on whether the test mode is playback.static Stream<HttpClient>
Returns a list ofHttpClients
that should be tested.Gets the TestMode that has been initialized.protected String
Deprecated.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
.static void
Before tests are executed, determines the test mode by reading theAZURE_TEST_MODE
environment variable.void
setupTest
(org.junit.jupiter.api.TestInfo testInfo) Sets-up thetestResourceNamer
andinterceptorManager
before each test case is run.static boolean
shouldClientBeTested
(HttpClient client) Returns whether the given http clients match the rules of test framework.protected void
sleepIfRunningAgainstService
(long millis) Sleeps the test for the given amount of milliseconds ifTestMode
isn'tTestMode.PLAYBACK
.void
teardownTest
(org.junit.jupiter.api.TestInfo testInfo) Disposes ofInterceptorManager
and 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
InterceptorManager
used for this test run. -
testResourceNamer
protected com.azure.core.test.utils.TestResourceNamer testResourceNamerTestResourceNamer
used for this test run. -
testContextManager
TestContextManager
used for this test run.
-
-
Constructor Details
-
TestBase
public TestBase()
-
-
Method Details
-
setupClass
@BeforeAll public static void setupClass()Before tests are executed, determines the test mode by reading theAZURE_TEST_MODE
environment variable. If it is not set,TestMode.PLAYBACK
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext) - Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
setupTest
@BeforeEach public void setupTest(org.junit.jupiter.api.TestInfo testInfo) Sets-up thetestResourceNamer
andinterceptorManager
before each test case is run. Then calls its implementing class to perform any other set-up commands.- Parameters:
testInfo
-TestInfo
to retrieve test method name.
-
teardownTest
@AfterEach public void teardownTest(org.junit.jupiter.api.TestInfo testInfo) Disposes ofInterceptorManager
and 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 ofHttpClients
that should be tested.- Returns:
- A list of
HttpClients
to 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.
-
sleepIfRunningAgainstService
protected void sleepIfRunningAgainstService(long millis) Sleeps the test for the given amount of milliseconds ifTestMode
isn'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
SyncPoller
to 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
PollerFlux
to 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 passedHttpClient
or returns aPlaybackClient
depending on whether the test mode is playback.When the test mode is playback the
PlaybackClient
corresponding to the test will be returned, otherwise the passedHttpClient
will be returned.- Parameters:
httpClient
- The initialHttpClient
that will be used.- Returns:
- Either the passed
HttpClient
orPlaybackClient
based on the test mode.
-
TestInfo
.