Add WebSockets (#1423)

* Add WebSockets

* Add tests

* fix

* more tests

* Add tests

* ...

* remove IOwin

* -

* tests

* fluent

* ok

* match

* .

* byte[]

* x

* func

* func

* byte

* trans

* ...

* frameworks.........

* jmes

* xxx

* sc
This commit is contained in:
Stef Heyenrath
2026-02-14 08:42:40 +01:00
committed by GitHub
parent dff55e175b
commit 8b27da95a8
103 changed files with 72659 additions and 398 deletions
@@ -1,7 +1,5 @@
// Copyright © WireMock.Net
using System;
using System.Linq;
using System.Reflection;
using System.Text;
using AnyOfTypes;
@@ -106,74 +104,6 @@ public class CSharpCodeMatcher : ICSharpCodeMatcher
var inputValue = isMatchWithString ? input : JObject.FromObject(input);
var source = GetSourceForIsMatchWithString(pattern, isMatchWithString);
object? result;
//#if (NET451 || NET452)
// var compilerParams = new System.CodeDom.Compiler.CompilerParameters
// {
// GenerateInMemory = true,
// GenerateExecutable = false,
// ReferencedAssemblies =
// {
// "System.dll",
// "System.Core.dll",
// "Microsoft.CSharp.dll",
// "Newtonsoft.Json.dll"
// }
// };
// using (var codeProvider = new Microsoft.CSharp.CSharpCodeProvider())
// {
// var compilerResults = codeProvider.CompileAssemblyFromSource(compilerParams, source);
// if (compilerResults.Errors.Count != 0)
// {
// var errors = from System.CodeDom.Compiler.CompilerError er in compilerResults.Errors select er.ToString();
// throw new WireMockException(string.Join(", ", errors));
// }
// var helper = compilerResults.CompiledAssembly?.CreateInstance("CodeHelper");
// if (helper == null)
// {
// throw new WireMockException("CSharpCodeMatcher: Unable to create instance from WireMock.CodeHelper");
// }
// var methodInfo = helper.GetType().GetMethod("IsMatch");
// if (methodInfo == null)
// {
// throw new WireMockException("CSharpCodeMatcher: Unable to find method 'IsMatch' in WireMock.CodeHelper");
// }
// try
// {
// result = methodInfo.Invoke(helper, new[] { inputValue });
// }
// catch (Exception ex)
// {
// throw new WireMockException("CSharpCodeMatcher: Unable to call method 'IsMatch' in WireMock.CodeHelper", ex);
// }
// }
//#elif (NET46 || NET461)
// dynamic script;
// try
// {
// script = CSScriptLibrary.CSScript.Evaluator.CompileCode(source).CreateObject("*");
// }
// catch (Exception ex)
// {
// throw new WireMockException("CSharpCodeMatcher: Unable to create compiler for WireMock.CodeHelper", ex);
// }
// try
// {
// result = script.IsMatch(inputValue);
// }
// catch (Exception ex)
// {
// throw new WireMockException("CSharpCodeMatcher: Problem calling method 'IsMatch' in WireMock.CodeHelper", ex);
// }
//#elif (NETSTANDARD2_0 || NETSTANDARD2_1 || NETCOREAPP3_1 || NET5_0_OR_GREATER || NET48)
Assembly assembly;
try
{
@@ -194,6 +124,7 @@ public class CSharpCodeMatcher : ICSharpCodeMatcher
throw new WireMockException("CSharpCodeMatcher: Unable to create object from assembly", ex);
}
object? result;
try
{
result = script.IsMatch(inputValue);
@@ -202,9 +133,7 @@ public class CSharpCodeMatcher : ICSharpCodeMatcher
{
throw new WireMockException("CSharpCodeMatcher: Problem calling method 'IsMatch' in WireMock.CodeHelper", ex);
}
//#else
// throw new NotSupportedException("The 'CSharpCodeMatcher' cannot be used in netstandard 1.3");
//#endif
try
{
return (bool)result;
@@ -1,11 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>A CSharpCodeMatcher which can be used to match WireMock.Net Requests using C# code.</Description>
<AssemblyTitle>WireMock.Net.Matchers.CSharpCode</AssemblyTitle>
<Authors>Stef Heyenrath</Authors>
<!--<TargetFrameworks>net451;net452;net46;net461;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0</TargetFrameworks>-->
<TargetFrameworks>net48;net8.0</TargetFrameworks>
<TargetFramework>netstandard2.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageTags>wiremock;matchers;matcher;csharp;csharpcode</PackageTags>
<RootNamespace>WireMock</RootNamespace>