mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-05-03 14:14:29 +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
139 lines
3.3 KiB
C#
139 lines
3.3 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using WireMock.Matchers.Request;
|
|
using WireMock.Net.Tests.VerifyExtensions;
|
|
using WireMock.RequestBuilders;
|
|
using WireMock.ResponseBuilders;
|
|
using WireMock.Serialization;
|
|
using WireMock.Types;
|
|
|
|
namespace WireMock.Net.Tests.Serialization;
|
|
|
|
public partial class MappingConverterTests
|
|
{
|
|
private static readonly VerifySettings VerifySettings = new();
|
|
static MappingConverterTests()
|
|
{
|
|
VerifySettings.Init();
|
|
}
|
|
|
|
[Fact]
|
|
public Task ToCSharpCode_With_Builder_And_AddStartIsTrue()
|
|
{
|
|
// Assign
|
|
var mapping = CreateMapping();
|
|
|
|
// Act
|
|
var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings
|
|
{
|
|
AddStart = true,
|
|
ConverterType = MappingConverterType.Builder
|
|
});
|
|
|
|
// Assert
|
|
code.Should().NotBeEmpty();
|
|
|
|
// Verify
|
|
return Verify(code, VerifySettings);
|
|
}
|
|
|
|
[Fact]
|
|
public Task ToCSharpCode_With_Builder_And_AddStartIsFalse()
|
|
{
|
|
// Assign
|
|
var mapping = CreateMapping();
|
|
|
|
// Act
|
|
var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings
|
|
{
|
|
AddStart = false,
|
|
ConverterType = MappingConverterType.Builder
|
|
});
|
|
|
|
// Assert
|
|
code.Should().NotBeEmpty();
|
|
|
|
// Verify
|
|
return Verify(code, VerifySettings);
|
|
}
|
|
|
|
[Fact]
|
|
public Task ToCSharpCode_With_Server_And_AddStartIsTrue()
|
|
{
|
|
// Assign
|
|
var mapping = CreateMapping();
|
|
|
|
// Act
|
|
var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings
|
|
{
|
|
AddStart = true,
|
|
ConverterType = MappingConverterType.Server
|
|
});
|
|
|
|
// Assert
|
|
code.Should().NotBeEmpty();
|
|
|
|
// Verify
|
|
return Verify(code, VerifySettings);
|
|
}
|
|
|
|
[Fact]
|
|
public Task ToCSharpCode_With_Server_And_AddStartIsFalse()
|
|
{
|
|
// Assign
|
|
var mapping = CreateMapping();
|
|
|
|
// Act
|
|
var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings
|
|
{
|
|
AddStart = false,
|
|
ConverterType = MappingConverterType.Server
|
|
});
|
|
|
|
// Assert
|
|
code.Should().NotBeEmpty();
|
|
|
|
// Verify
|
|
return Verify(code, VerifySettings);
|
|
}
|
|
|
|
private IMapping CreateMapping()
|
|
{
|
|
var guid = new Guid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc");
|
|
var request = Request.Create()
|
|
.UsingGet()
|
|
.WithEarlyMismatch(RequestMatcherType.Method)
|
|
.WithPath("/test_path")
|
|
.WithParam("q", "42")
|
|
.WithClientIP("112.123.100.99")
|
|
.WithHeader("h-key", "h-value")
|
|
.WithCookie("c-key", "c-value")
|
|
.WithBody("b");
|
|
var response = Response.Create()
|
|
.WithHeader("Keep-Alive", "test")
|
|
.WithBody("bbb")
|
|
.WithDelay(12345)
|
|
.WithTransformer();
|
|
|
|
return new Mapping
|
|
(
|
|
guid,
|
|
_updatedAt,
|
|
string.Empty,
|
|
string.Empty,
|
|
null,
|
|
_settings,
|
|
request,
|
|
response,
|
|
42,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
false,
|
|
null,
|
|
data: null
|
|
).WithProbability(0.3);
|
|
}
|
|
} |