diff --git a/Source/Mockolate/Web/ItExtensions.HttpContent.cs b/Source/Mockolate/Web/ItExtensions.HttpContent.cs
index 77a21786..526c003b 100644
--- a/Source/Mockolate/Web/ItExtensions.HttpContent.cs
+++ b/Source/Mockolate/Web/ItExtensions.HttpContent.cs
@@ -235,26 +235,35 @@ public bool Matches(HttpContent content, HttpRequestMessage? message)
}
}
- private class HttpContentParameterWrapper(IHttpContentParameter parameter) : IHttpContentParameter,
+ ///
+ /// An abstract wrapper base class for .
+ ///
+ public abstract class HttpContentParameterWrapper(IHttpContentParameter parameter) : IHttpContentParameter,
IHttpRequestMessagePropertyParameter, IParameter
{
+ ///
public IParameter Do(Action callback)
=> parameter.Do(callback);
+ ///
public IHttpContentHeaderParameter WithHeaders(
params IEnumerable<(string Name, HttpHeaderValue Value)> headers)
=> parameter.WithHeaders(headers);
+ ///
public IHttpContentParameter WithString(Func predicate)
=> parameter.WithString(predicate);
+ ///
public IHttpContentParameter WithBytes(Func predicate)
=> parameter.WithBytes(predicate);
+ ///
public IHttpContentParameter WithMediaType(string? mediaType)
=> parameter.WithMediaType(mediaType);
- public bool Matches(HttpContent? value, HttpRequestMessage? requestMessage)
+ bool IHttpRequestMessagePropertyParameter.Matches(HttpContent? value,
+ HttpRequestMessage? requestMessage)
{
if (parameter is IHttpRequestMessagePropertyParameter requestMessagePropertyParameter)
{
@@ -264,9 +273,11 @@ public bool Matches(HttpContent? value, HttpRequestMessage? requestMessage)
return Matches(value);
}
+ ///
public bool Matches(object? value)
=> ((IParameter)parameter).Matches(value);
+ ///
public void InvokeCallbacks(object? value)
=> ((IParameter)parameter).InvokeCallbacks(value);
}
diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt
index 72fb52c2..a7140d37 100644
--- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt
+++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt
@@ -1860,6 +1860,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
+ public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
+ {
+ protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
+ public Mockolate.Parameters.IParameter Do(System.Action callback) { }
+ public void InvokeCallbacks(object? value) { }
+ public bool Matches(object? value) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func predicate) { }
+ public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
+ "Name",
+ "Value"})] System.Collections.Generic.IEnumerable> headers) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func predicate) { }
+ }
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();
diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt
index 7fed6eec..864ccb26 100644
--- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt
+++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt
@@ -1859,6 +1859,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
+ public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
+ {
+ protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
+ public Mockolate.Parameters.IParameter Do(System.Action callback) { }
+ public void InvokeCallbacks(object? value) { }
+ public bool Matches(object? value) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func predicate) { }
+ public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
+ "Name",
+ "Value"})] System.Collections.Generic.IEnumerable> headers) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func predicate) { }
+ }
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();
diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt
index 6bf1ca20..f946ed4f 100644
--- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt
+++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt
@@ -1800,6 +1800,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
+ public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
+ {
+ protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
+ public Mockolate.Parameters.IParameter Do(System.Action callback) { }
+ public void InvokeCallbacks(object? value) { }
+ public bool Matches(object? value) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func predicate) { }
+ public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
+ "Name",
+ "Value"})] System.Collections.Generic.IEnumerable> headers) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
+ public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func predicate) { }
+ }
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();