Skip to main content

Definition

Assembly: CloudNimble.Breakdance.Assemblies.dll Namespace: CloudNimble.Breakdance.Assemblies.Http Inheritance: CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase

Syntax

CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotCaptureHandler

Summary

A DelegatingHandler that captures HTTP responses and saves them as snapshot files.

Remarks

This handler passes requests through to the actual endpoint, then captures the response and saves it as a snapshot file. This enables recording real API responses for later replay during testing. Use this handler during an initial recording phase to capture responses from third-party APIs, then use ResponseSnapshotReplayHandler to replay those responses during test execution without hitting live endpoints.

Examples

// Create a handler that captures responses to snapshot files
var innerHandler = new HttpClientHandler();
var captureHandler = new ResponseSnapshotCaptureHandler("TestData/Snapshots")
{
    InnerHandler = innerHandler
};
var client = new HttpClient(captureHandler);

// Requests go to the real endpoint, responses are saved as snapshots
var response = await client.GetAsync("https://api.example.com/users");

Constructors

.ctor

Creates a new ResponseSnapshotCaptureHandler that saves response snapshots to the specified path.

Syntax

public ResponseSnapshotCaptureHandler(string responseSnapshotsPath)

Parameters

NameTypeDescription
responseSnapshotsPathstringRoot folder path for storing response snapshot files.

.ctor Inherited

Inherited from CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase
Creates a new ResponseSnapshotHandlerBase with the specified snapshot storage path.

Syntax

public ResponseSnapshotHandlerBase(string responseSnapshotsPath)

Parameters

NameTypeDescription
responseSnapshotsPathstringRoot folder path for storing response snapshot files.

Examples

var handler = new ResponseSnapshotReplayHandler("TestData/Snapshots");
var client = new HttpClient(handler);

Properties

ResponseSnapshotsPath Inherited

Inherited from CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase
Gets the root folder path where response snapshot files are stored.

Syntax

public string ResponseSnapshotsPath { get; private set; }

Property Value

Type: string

Methods

GetFileExtensionString Inherited

Inherited from CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase
Maps the MediaType header in the HttpRequestMessage to a known list of file extensions.

Syntax

public static string GetFileExtensionString(System.Net.Http.HttpRequestMessage request)

Parameters

NameTypeDescription
requestSystem.Net.Http.HttpRequestMessageThe request to examine.

Returns

Type: string The file extension string for the request’s Accept header.

Exceptions

ExceptionDescription
ArgumentNullExceptionThrown when request is null.

GetPathInfo Inherited

Inherited from CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase
Parses the RequestUri in the HttpRequestMessage into a Path-safe string suitable for storing response snapshots on the file system.

Syntax

internal static (string, string) GetPathInfo(System.Net.Http.HttpRequestMessage request, string responseSnapshotsPath)

Parameters

NameTypeDescription
requestSystem.Net.Http.HttpRequestMessageThe HttpRequestMessage to parse.
responseSnapshotsPathstringRoot folder for storing snapshot files.

Returns

Type: (string, string) A tuple containing the directory path and file path components.

Exceptions

ExceptionDescription
ArgumentExceptionThrown when the request has an invalid RequestUri.
InvalidOperationExceptionThrown when the URI cannot be converted to a valid file path.

GetResponseMediaTypeString Inherited

Inherited from CloudNimble.Breakdance.Assemblies.Http.ResponseSnapshotHandlerBase
Maps the file extension in the specified path to a known list of media types.

Syntax

public static string GetResponseMediaTypeString(string filePath)

Parameters

NameTypeDescription
filePathstringThe file path to examine.

Returns

Type: string The MIME type string for the file extension.