This commit is contained in:
Stef Heyenrath
2026-02-26 18:44:06 +01:00
parent 868fd6abf5
commit 5c437450a1
21 changed files with 83 additions and 94 deletions

View File

@@ -4,7 +4,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<VersionPrefix>2.0.0-preview-02</VersionPrefix> <VersionPrefix>2.0.0-preview-01</VersionPrefix>
<PackageIcon>WireMock.Net-Logo.png</PackageIcon> <PackageIcon>WireMock.Net-Logo.png</PackageIcon>
<PackageProjectUrl>https://github.com/wiremock/WireMock.Net</PackageProjectUrl> <PackageProjectUrl>https://github.com/wiremock/WireMock.Net</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>

View File

@@ -16,7 +16,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="WireMock.Net" Version="1.12.0" /> <PackageReference Include="WireMock.Net" Version="1.25.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -201,7 +201,6 @@ public static class Program
.WithGuid(broadcastMappingGuid) .WithGuid(broadcastMappingGuid)
.RespondWith(Response.Create() .RespondWith(Response.Create()
.WithWebSocket(ws => ws .WithWebSocket(ws => ws
.WithBroadcast()
.WithMessageHandler(async (message, context) => .WithMessageHandler(async (message, context) =>
{ {
if (message.MessageType == WebSocketMessageType.Text) if (message.MessageType == WebSocketMessageType.Text)
@@ -423,7 +422,6 @@ public static class Program
.WithGuid(broadcastGuid) .WithGuid(broadcastGuid)
.RespondWith(Response.Create() .RespondWith(Response.Create()
.WithWebSocket(ws => ws .WithWebSocket(ws => ws
.WithBroadcast()
.WithMessageHandler(async (message, context) => .WithMessageHandler(async (message, context) =>
{ {
if (message.MessageType == WebSocketMessageType.Text) if (message.MessageType == WebSocketMessageType.Text)

View File

@@ -1,7 +1,7 @@
// Copyright © WireMock.Net // Copyright © WireMock.Net
namespace WireMock.Admin.Mappings namespace WireMock.Admin.Mappings;
{
/// <summary> /// <summary>
/// EncodingModel /// EncodingModel
/// </summary> /// </summary>
@@ -16,11 +16,10 @@ namespace WireMock.Admin.Mappings
/// <summary> /// <summary>
/// Encoding EncodingName /// Encoding EncodingName
/// </summary> /// </summary>
public string EncodingName { get; set; } public required string EncodingName { get; set; }
/// <summary> /// <summary>
/// Encoding WebName /// Encoding WebName
/// </summary> /// </summary>
public string WebName { get; set; } public required string WebName { get; set; }
}
} }

View File

@@ -1,6 +1,5 @@
// Copyright © WireMock.Net // Copyright © WireMock.Net
using System;
using WireMock.Models; using WireMock.Models;
namespace WireMock.Admin.Mappings; namespace WireMock.Admin.Mappings;
@@ -65,12 +64,12 @@ public class MappingModel
/// <summary> /// <summary>
/// The request model. /// The request model.
/// </summary> /// </summary>
public RequestModel Request { get; set; } public required RequestModel Request { get; set; }
/// <summary> /// <summary>
/// The response model. /// The response model.
/// </summary> /// </summary>
public ResponseModel Response { get; set; } public required ResponseModel Response { get; set; }
/// <summary> /// <summary>
/// Saves this mapping as a static mapping file. /// Saves this mapping as a static mapping file.

View File

@@ -13,7 +13,7 @@ public class LogRequestModel
/// <summary> /// <summary>
/// The Client IP Address. /// The Client IP Address.
/// </summary> /// </summary>
public string ClientIP { get; set; } public required string ClientIP { get; set; }
/// <summary> /// <summary>
/// The DateTime. /// The DateTime.
@@ -23,22 +23,22 @@ public class LogRequestModel
/// <summary> /// <summary>
/// The Path. /// The Path.
/// </summary> /// </summary>
public string Path { get; set; } public required string Path { get; set; }
/// <summary> /// <summary>
/// The Absolute Path. /// The Absolute Path.
/// </summary> /// </summary>
public string AbsolutePath { get; set; } public required string AbsolutePath { get; set; }
/// <summary> /// <summary>
/// Gets the url (relative). /// Gets the url (relative).
/// </summary> /// </summary>
public string Url { get; set; } public required string Url { get; set; }
/// <summary> /// <summary>
/// The absolute URL. /// The absolute URL.
/// </summary> /// </summary>
public string AbsoluteUrl { get; set; } public required string AbsoluteUrl { get; set; }
/// <summary> /// <summary>
/// The ProxyUrl (if a proxy is used). /// The ProxyUrl (if a proxy is used).
@@ -53,7 +53,7 @@ public class LogRequestModel
/// <summary> /// <summary>
/// The method. /// The method.
/// </summary> /// </summary>
public string Method { get; set; } public required string Method { get; set; }
/// <summary> /// <summary>
/// The HTTP Version. /// The HTTP Version.

View File

@@ -1,7 +1,7 @@
// Copyright © WireMock.Net // Copyright © WireMock.Net
namespace WireMock.Admin.Scenarios namespace WireMock.Admin.Scenarios;
{
/// <summary> /// <summary>
/// ScenarioStateModel /// ScenarioStateModel
/// </summary> /// </summary>
@@ -11,7 +11,7 @@ namespace WireMock.Admin.Scenarios
/// <summary> /// <summary>
/// Gets or sets the name. /// Gets or sets the name.
/// </summary> /// </summary>
public string Name { get; set; } public required string Name { get; set; }
/// <summary> /// <summary>
/// Gets or sets the NextState. /// Gets or sets the NextState.
@@ -33,4 +33,3 @@ namespace WireMock.Admin.Scenarios
/// </summary> /// </summary>
public int Counter { get; set; } public int Counter { get; set; }
} }
}

View File

@@ -39,7 +39,7 @@
</ItemGroup>--> </ItemGroup>-->
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentBuilder" Version="0.13.0"> <PackageReference Include="FluentBuilder" Version="0.14.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

View File

@@ -1,7 +1,5 @@
// Copyright © WireMock.Net // Copyright © WireMock.Net
using System.IO;
using System.Linq;
using Stef.Validation; using Stef.Validation;
using WireMock.Settings; using WireMock.Settings;
@@ -10,7 +8,7 @@ namespace WireMock.Serialization;
/// <summary> /// <summary>
/// Creates sanitized file names for mappings /// Creates sanitized file names for mappings
/// </summary> /// </summary>
public class MappingFileNameSanitizer internal class MappingFileNameSanitizer
{ {
private const char ReplaceChar = '_'; private const char ReplaceChar = '_';

View File

@@ -870,7 +870,7 @@ public partial class WireMockServer
throw new NotSupportedException(); throw new NotSupportedException();
} }
private static T DeserializeObject<T>(IRequestMessage requestMessage) where T : new() private static T DeserializeObject<T>(IRequestMessage requestMessage)
{ {
switch (requestMessage.BodyData?.DetectedBodyType) switch (requestMessage.BodyData?.DetectedBodyType)
{ {

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Description>Minimal version from the lightweight Http Mocking Server for .NET</Description> <Description>Minimal version from the lightweight Http Mocking Server for .NET</Description>
<AssemblyTitle>WireMock.Net.Minimal</AssemblyTitle> <AssemblyTitle>WireMock.Net.Minimal</AssemblyTitle>
@@ -37,9 +37,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<!--<PackageReference Include="JmesPath.Net.SourceOnly" Version="1.0.330-20260213.1" />--> <PackageReference Include="JmesPath.Net.SourceOnly" Version="1.0.330-20260213.1" />
<PackageReference Include="JmesPath.Net" Version="1.0.330" /> <!--<PackageReference Include="JmesPath.Net" Version="1.0.330" />-->
<PackageReference Include="NJsonSchema.Extensions" Version="0.1.0" /> <PackageReference Include="NJsonSchema.Extensions" Version="0.2.0" />
<PackageReference Include="NSwag.Core" Version="13.16.1" /> <PackageReference Include="NSwag.Core" Version="13.16.1" />
<PackageReference Include="SimMetrics.Net" Version="1.0.5" /> <PackageReference Include="SimMetrics.Net" Version="1.0.5" />
<PackageReference Include="TinyMapper.Signed" Version="4.0.0" /> <PackageReference Include="TinyMapper.Signed" Version="4.0.0" />
@@ -47,6 +47,12 @@
<PackageReference Include="Scriban.Signed" Version="5.5.0" /> <PackageReference Include="Scriban.Signed" Version="5.5.0" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Update="JmesPath.Net.SourceOnly">
<NoWarn>CS1591;CS8618</NoWarn>
</PackageReference>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0'"> <ItemGroup Condition=" '$(TargetFramework)' == 'net8.0'">
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup> </ItemGroup>
@@ -56,18 +62,6 @@
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.3.9" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.3.9" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<!-- Suppress warnings from JmesPath source-only package -->
<!--<NoWarn>$(NoWarn);CS8600;CS8602;CS8603;CS8604;CS8619;CS8625;CS0649</NoWarn>-->
</PropertyGroup>
<!--<ItemGroup>
--><!-- Disable all warnings for JmesPath source-only package files --><!--
<Compile Update="**\jmespath.net.sourceonly\**\*.cs">
<NoWarn>$(NoWarn);CS0001-CS9999</NoWarn>
</Compile>
</ItemGroup>-->
<ItemGroup> <ItemGroup>
<Compile Update="Server\WireMockServer.*.cs"> <Compile Update="Server\WireMockServer.*.cs">
<DependentUpon>WireMockServer.cs</DependentUpon> <DependentUpon>WireMockServer.cs</DependentUpon>

View File

@@ -42,7 +42,7 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="RamlToOpenApiConverter.SourceOnly" Version="0.11.0" /> <PackageReference Include="RamlToOpenApiConverter.SourceOnly" Version="0.11.0" />
<PackageReference Include="YamlDotNet" Version="16.3.0" /> <PackageReference Include="YamlDotNet" Version="16.3.0" />
<PackageReference Include="RandomDataGenerator.Net" Version="1.0.19" /> <PackageReference Include="RandomDataGenerator.Net" Version="1.0.19.1" />
<PackageReference Include="Stef.Validation" Version="0.2.0" /> <PackageReference Include="Stef.Validation" Version="0.2.0" />
</ItemGroup> </ItemGroup>

View File

@@ -28,7 +28,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="Stef.Validation" Version="0.2.0" /> <PackageReference Include="Stef.Validation" Version="0.2.0" />
<PackageReference Include="TUnit.Core" Version="1.13.60" /> <PackageReference Include="TUnit.Core" Version="1.17.29" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -24,7 +24,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="Stef.Validation" Version="0.2.0" /> <PackageReference Include="Stef.Validation" Version="0.2.0" />
<PackageReference Include="xunit.v3.extensibility.core" Version="3.2.0" /> <PackageReference Include="xunit.v3.extensibility.core" Version="3.2.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -25,7 +25,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="AwesomeAssertions" Version="9.4.0" /> <PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="Moq" Version="4.20.72" /> <PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="xunit.v3" Version="3.2.2" /> <PackageReference Include="xunit.v3" Version="3.2.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">

View File

@@ -16,7 +16,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AwesomeAssertions" Version="9.4.0" /> <PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="coverlet.collector" Version="6.0.4"> <PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

View File

@@ -24,7 +24,7 @@
</PackageReference> </PackageReference>
<PackageReference Include="AwesomeAssertions" Version="9.4.0" /> <PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.8" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.8" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="Moq" Version="4.20.72" /> <PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="xunit.v3" Version="3.2.2" /> <PackageReference Include="xunit.v3" Version="3.2.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">

View File

@@ -10,7 +10,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="TUnit" Version="1.13.60" /> <PackageReference Include="TUnit" Version="1.17.29" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -2,9 +2,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>
</PropertyGroup> </PropertyGroup>
@@ -15,7 +15,7 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="WireMock.Net" Version="1.25.0" /> <PackageReference Include="WireMock.Net" Version="1.25.0" />
<PackageReference Include="xunit.v3" Version="3.2.2" /> <PackageReference Include="xunit.v3" Version="3.2.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">

View File

@@ -12,8 +12,10 @@ using WireMock.Server;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace WireMock.Net.Tests; namespace WireMock.Net.Tests;
public partial class WireMockServerTests public class WireMockServerTests
{ {
private readonly CancellationToken _ct = TestContext.Current.CancellationToken;
[Fact] [Fact]
public async Task WireMockServer_WithMultiPartBody_Using_MimePartMatchers() public async Task WireMockServer_WithMultiPartBody_Using_MimePartMatchers()
{ {
@@ -85,19 +87,19 @@ public partial class WireMockServerTests
var client = server.CreateClient(); var client = server.CreateClient();
// Act 1 // Act 1
var response1 = await client.PostAsync("/multipart", formDataContent); var response1 = await client.PostAsync("/multipart", formDataContent, _ct);
// Assert 1 // Assert 1
response1.StatusCode.Should().Be(HttpStatusCode.OK); response1.StatusCode.Should().Be(HttpStatusCode.OK);
var content1 = await response1.Content.ReadAsStringAsync(); var content1 = await response1.Content.ReadAsStringAsync(_ct);
content1.Should().Be("POST;This is some plain text"); content1.Should().Be("POST;This is some plain text");
// Act 2 // Act 2
var response2 = await client.PostAsync("/multipart2", formDataContent); var response2 = await client.PostAsync("/multipart2", formDataContent, _ct);
// Assert 1 // Assert 1
response2.StatusCode.Should().Be(HttpStatusCode.OK); response2.StatusCode.Should().Be(HttpStatusCode.OK);
var content2 = await response2.Content.ReadAsStringAsync(); var content2 = await response2.Content.ReadAsStringAsync(_ct);
content2.Should().Be("OK"); content2.Should().Be("OK");
} }
} }

View File

@@ -62,13 +62,13 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Meziantou.Extensions.Logging.Xunit.v3" Version="1.1.23" /> <PackageReference Include="Meziantou.Extensions.Logging.Xunit.v3" Version="1.1.24" />
<PackageReference Include="Verify.XunitV3" Version="31.13.2" /> <PackageReference Include="Verify.XunitV3" Version="31.13.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="coverlet.collector" Version="6.0.4"> <PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>