Package com.azure.core.test
Class InterceptorManager
- java.lang.Object
-
- com.azure.core.test.InterceptorManager
-
- All Implemented Interfaces:
AutoCloseable
public class InterceptorManager extends Object implements 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
testModeisTestMode.PLAYBACK, the manager tries to find an existing test session record to read network calls from. - If the
testModeisTestMode.RECORD, the manager creates a new test session record and saves all the network calls to it. - If the
testModeisTestMode.LIVE, the manager won't attempt to read or create a test session record.
InterceptorManageris disposed, if thetestModeisTestMode.RECORD, the network calls that were recorded are persisted to: "session-records/testName.json"
-
-
Constructor Summary
Constructors Constructor Description InterceptorManager(TestContextManager testContextManager)Creates a new InterceptorManager that either replays test-session records or saves them.InterceptorManager(String testName, TestMode testMode)Deprecated.UseInterceptorManager(TestContextManager)instead.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTextReplacementRule(String regex, String replacement)Add text replacement rule (regex as key, the replacement text as value) intotextReplacementRulesvoidclose()Disposes of resources used by this InterceptorManager.HttpClientgetPlaybackClient()Gets a new HTTP client that plays back test session records managed byInterceptorManager.com.azure.core.test.models.RecordedDatagetRecordedData()Gets the recorded data InterceptorManager is keeping track of.HttpPipelinePolicygetRecordPolicy()Gets a new HTTP pipeline policy that records network calls and its data is managed byInterceptorManager.HttpPipelinePolicygetRecordPolicy(List<Function<String,String>> recordingRedactors)Gets a new HTTP pipeline policy that records network calls.booleanisLiveMode()Gets whether this InterceptorManager is in live mode.booleanisPlaybackMode()Gets whether this InterceptorManager is in playback mode.
-
-
-
Constructor Detail
-
InterceptorManager
@Deprecated public InterceptorManager(String testName, TestMode testMode)
Deprecated.UseInterceptorManager(TestContextManager)instead.Creates a new InterceptorManager that either replays test-session records or saves them.- If
testModeisTestMode.PLAYBACK, the manager tries to find an existing test session record to read network calls from. - If
testModeisTestMode.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- TheTestModefor this interceptor.- Throws:
UncheckedIOException- IftestModeisTestMode.PLAYBACKand an existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData.NullPointerException- IftestNameisnull.
- If
-
InterceptorManager
public InterceptorManager(TestContextManager testContextManager)
Creates a new InterceptorManager that either replays test-session records or saves them.- If
testModeisTestMode.PLAYBACK, the manager tries to find an existing test session record to read network calls from. - If
testModeisTestMode.RECORD, the manager creates a new test session record and saves all the network calls to it. - If
testModeisTestMode.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- IftestModeisTestMode.PLAYBACKand an existing test session record could not be located or the data could not be deserialized into an instance ofRecordedData.NullPointerException- IftestNameisnull.
- If
-
InterceptorManager
@Deprecated public InterceptorManager(String testName, Map<String,String> textReplacementRules)
Deprecated.UseInterceptorManager(String, Map, boolean)instead.Creates a new InterceptorManager that replays test session records. It takes a set oftextReplacementRules, that can be used byPlaybackClientto 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- IftestNameortextReplacementRulesisnull.
-
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 byPlaybackClientto 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- IftestNameortextReplacementRulesisnull.
-
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 byPlaybackClientto 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- IftestNameortextReplacementRulesisnull.
-
-
Method Detail
-
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
public HttpPipelinePolicy getRecordPolicy()
Gets a new HTTP pipeline policy that records network calls and its data is managed byInterceptorManager.- Returns:
- HttpPipelinePolicy to record network calls.
-
getRecordPolicy
public HttpPipelinePolicy getRecordPolicy(List<Function<String,String>> recordingRedactors)
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:
HttpPipelinePolicyto record network calls.
-
getPlaybackClient
public HttpClient 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. IftestModeisTestMode.RECORD, all the network calls are persisted to: "session-records/testName.json"- Specified by:
closein interfaceAutoCloseable
-
addTextReplacementRule
public void addTextReplacementRule(String regex, String replacement)
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
-
-