mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-05-03 21:54:13 +02:00
* feat(request matchers): Add support for early mismatch in mapping processing * test(request matchers): Add unit test for early mismatch functionality * test(grpc): Add test for grpc requests early mismatch and error logging (Issue #1442) * feat(request matchers): RequestMatcherType Add `RequestMatcherType` to request matchers for improved type identification Closes #1442 * refactor(request matchers): Request Replace `EarlyMatcherSelector` with `EarlyMatcherType` for improved clarity and consistency Closes #1442 * feat(request): conversion Add EarlyMatcherType support in request models and mapping conversion Closes #1442 * test(mapping): new tests add unit tests for EarlyMatcherType in mapping conversion and serialization Closes #1442 * refactor(request matchers): RequestMessageEarlyMatcher Replaced inline `EarlyMatcherType` logic with the new `RequestMessageEarlyMatcher` class to support cases when several matchers of the same type are present. For instance - Header, Cookie, Param Closes #1442 * test(request matchers): Early Mismatch add unit tests for early mismatch scenarios with several matchers of same type. Currently, headers and parameters Closes #1442 * refactor(mapping): RequestModel.EarlyMatcherType use fully qualified enum for EarlyMatcherType in serialization Closes #1442 * style(review): fixes - removed unused method - added missing curly brackets Closes #1442
77 lines
2.0 KiB
C#
77 lines
2.0 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using WireMock.Matchers.Request;
|
|
|
|
namespace WireMock.Admin.Mappings;
|
|
|
|
/// <summary>
|
|
/// RequestModel
|
|
/// </summary>
|
|
[FluentBuilder.AutoGenerateBuilder]
|
|
public class RequestModel
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the ClientIP. (Can be a string or a ClientIPModel)
|
|
/// </summary>
|
|
public object? ClientIP { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Path. (Can be a string or a PathModel)
|
|
/// </summary>
|
|
public object? Path { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Url. (Can be a string or a UrlModel)
|
|
/// </summary>
|
|
public object? Url { get; set; }
|
|
|
|
/// <summary>
|
|
/// The methods
|
|
/// </summary>
|
|
public string[]? Methods { get; set; }
|
|
|
|
/// <summary>
|
|
/// The HTTP Version
|
|
/// </summary>
|
|
public string? HttpVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Reject on match for Methods.
|
|
/// </summary>
|
|
public bool? MethodsRejectOnMatch { get; set; }
|
|
|
|
/// <summary>
|
|
/// The Operator to use when Methods are defined. [Optional]
|
|
/// - null = Same as "or".
|
|
/// - "or" = Only one method should match.
|
|
/// - "and" = All methods should match.
|
|
/// - "average" = The average value from all methods.
|
|
/// </summary>
|
|
public string? MethodsMatchOperator { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Headers.
|
|
/// </summary>
|
|
public IList<HeaderModel>? Headers { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Cookies.
|
|
/// </summary>
|
|
public IList<CookieModel>? Cookies { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Params.
|
|
/// </summary>
|
|
public IList<ParamModel>? Params { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the body.
|
|
/// </summary>
|
|
public BodyModel? Body { get; set; }
|
|
|
|
/// <summary>
|
|
/// Type of the request matcher to return an immediate mismatch during mapping processing.
|
|
/// Optional.
|
|
/// </summary>
|
|
public RequestMatcherType? EarlyMatcherType { get; set; }
|
|
} |