Package com.azure.core.test
Class InterceptorManager
java.lang.Object
com.azure.core.test.InterceptorManager
- All Implemented Interfaces:
AutoCloseable
A class that keeps track of network calls by either reading the data from an existing test session record or
recording the network calls in memory. Test session records are saved or read from: "session-records/
testName
.json"
- If the
testMode
isTestMode.PLAYBACK
, the manager tries to find an existing test session record to read network calls from. - If the
testMode
isTestMode.RECORD
, the manager creates a new test session record and saves all the network calls to it. - If the
testMode
isTestMode.LIVE
, the manager won't attempt to read or create a test session record.
InterceptorManager
is disposed, if the testMode
is TestMode.RECORD
, the network
calls that were recorded are persisted to: "session-records/testName
.json"-
Constructor Summary
ConstructorDescriptionInterceptorManager
(TestContextManager testContextManager) Creates a new InterceptorManager that either replays test-session records or saves them.InterceptorManager
(String testName, TestMode testMode) Deprecated.InterceptorManager
(String testName, Map<String, String> textReplacementRules) Deprecated.UseInterceptorManager(String, Map, boolean)
instead.InterceptorManager
(String testName, Map<String, String> textReplacementRules, boolean doNotRecord) Deprecated.UseInterceptorManager(String, Map, boolean, String)
instead.InterceptorManager
(String testName, Map<String, String> textReplacementRules, boolean doNotRecord, String playbackRecordName) Creates a new InterceptorManager that replays test session records. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addTextReplacementRule
(String regex, String replacement) Add text replacement rule (regex as key, the replacement text as value) intotextReplacementRules
void
close()
Disposes of resources used by this InterceptorManager.Gets a new HTTP client that plays back test session records managed byInterceptorManager
.com.azure.core.test.models.RecordedData
Gets the recorded data InterceptorManager is keeping track of.Gets a new HTTP pipeline policy that records network calls and its data is managed byInterceptorManager
.getRecordPolicy
(List<Function<String, String>> recordingRedactors) Gets a new HTTP pipeline policy that records network calls.boolean
Gets whether this InterceptorManager is in live mode.boolean
Gets whether this InterceptorManager is in playback mode.
-
Constructor Details
-
InterceptorManager
Deprecated.UseInterceptorManager(TestContextManager)
instead.Creates a new InterceptorManager that either replays test-session records or saves them.- If
testMode
isTestMode.PLAYBACK
, the manager tries to find an existing test session record to read network calls from. - If
testMode
isTestMode.RECORD
, the manager creates a new test session record and saves all the network calls to it.
testName
.json"- Parameters:
testName
- Name of the test session record.testMode
- TheTestMode
for this interceptor.- Throws:
UncheckedIOException
- IftestMode
isTestMode.PLAYBACK
and an existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData
.NullPointerException
- IftestName
isnull
.
- If
-
InterceptorManager
Creates a new InterceptorManager that either replays test-session records or saves them.- If
testMode
isTestMode.PLAYBACK
, the manager tries to find an existing test session record to read network calls from. - If
testMode
isTestMode.RECORD
, the manager creates a new test session record and saves all the network calls to it. - If
testMode
isTestMode.LIVE
, the manager won't attempt to read or create a test session record.
testName
.json"- Parameters:
testContextManager
- Contextual information about the test being ran, such as test name,TestMode
, and others.- Throws:
UncheckedIOException
- IftestMode
isTestMode.PLAYBACK
and an existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData
.NullPointerException
- IftestName
isnull
.
- If
-
InterceptorManager
Deprecated.UseInterceptorManager(String, Map, boolean)
instead.Creates a new InterceptorManager that replays test session records. It takes a set oftextReplacementRules
, that can be used byPlaybackClient
to replace values in aNetworkCallRecord.getResponse()
. The test session records are read from: "session-records/testName
.json"- Parameters:
testName
- Name of the test session record.textReplacementRules
- A set of rules to replace text inNetworkCallRecord.getResponse()
when playing back network calls.- Throws:
UncheckedIOException
- An existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData
.NullPointerException
- IftestName
ortextReplacementRules
isnull
.
-
InterceptorManager
@Deprecated public InterceptorManager(String testName, Map<String, String> textReplacementRules, boolean doNotRecord) Deprecated.UseInterceptorManager(String, Map, boolean, String)
instead.Creates a new InterceptorManager that replays test session records. It takes a set oftextReplacementRules
, that can be used byPlaybackClient
to replace values in aNetworkCallRecord.getResponse()
. The test session records are read from: "session-records/testName
.json"- Parameters:
testName
- Name of the test session record.textReplacementRules
- A set of rules to replace text inNetworkCallRecord.getResponse()
when playing back network calls.doNotRecord
- Flag indicating whether network calls should be record or played back.- Throws:
UncheckedIOException
- An existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData
.NullPointerException
- IftestName
ortextReplacementRules
isnull
.
-
InterceptorManager
public InterceptorManager(String testName, Map<String, String> textReplacementRules, boolean doNotRecord, String playbackRecordName) Creates a new InterceptorManager that replays test session records. It takes a set oftextReplacementRules
, that can be used byPlaybackClient
to replace values in aNetworkCallRecord.getResponse()
. The test session records are read from: "session-records/testName
.json"- Parameters:
testName
- Name of the test.textReplacementRules
- A set of rules to replace text inNetworkCallRecord.getResponse()
when playing back network calls.doNotRecord
- Flag indicating whether network calls should be record or played back.playbackRecordName
- Full name of the test including its iteration, used as the playback record name.- Throws:
UncheckedIOException
- An existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData
.NullPointerException
- IftestName
ortextReplacementRules
isnull
.
-
-
Method Details
-
isPlaybackMode
public boolean isPlaybackMode()Gets whether this InterceptorManager is in playback mode.- Returns:
- true if the InterceptorManager is in playback mode and false otherwise.
-
isLiveMode
public boolean isLiveMode()Gets whether this InterceptorManager is in live mode.- Returns:
- true if the InterceptorManager is in live mode and false otherwise.
-
getRecordedData
public com.azure.core.test.models.RecordedData getRecordedData()Gets the recorded data InterceptorManager is keeping track of.- Returns:
- The recorded data managed by InterceptorManager.
-
getRecordPolicy
Gets a new HTTP pipeline policy that records network calls and its data is managed byInterceptorManager
.- Returns:
- HttpPipelinePolicy to record network calls.
-
getRecordPolicy
Gets a new HTTP pipeline policy that records network calls. The recorded content is redacted by the given list of redactor functions to hide sensitive information.- Parameters:
recordingRedactors
- The custom redactor functions that are applied in addition to the default redactor functions defined inRecordingRedactor
.- Returns:
HttpPipelinePolicy
to record network calls.
-
getPlaybackClient
Gets a new HTTP client that plays back test session records managed byInterceptorManager
.- Returns:
- An HTTP client that plays back network calls from its recorded data.
-
close
public void close()Disposes of resources used by this InterceptorManager. IftestMode
isTestMode.RECORD
, all the network calls are persisted to: "session-records/testName
.json"- Specified by:
close
in interfaceAutoCloseable
-
addTextReplacementRule
Add text replacement rule (regex as key, the replacement text as value) intotextReplacementRules
- Parameters:
regex
- the pattern to locate the position of replacementreplacement
- the replacement text
-
InterceptorManager(TestContextManager)
instead.