Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions Source/Mockolate/Web/ItExtensions.HttpContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -235,26 +235,35 @@ public bool Matches(HttpContent content, HttpRequestMessage? message)
}
}

private class HttpContentParameterWrapper(IHttpContentParameter parameter) : IHttpContentParameter,
/// <summary>
/// An abstract wrapper base class for <see cref="IHttpContentParameter" />.
/// </summary>
public abstract class HttpContentParameterWrapper(IHttpContentParameter parameter) : IHttpContentParameter,
IHttpRequestMessagePropertyParameter<HttpContent?>, IParameter
{
Comment thread
vbreuss marked this conversation as resolved.
/// <inheritdoc cref="IParameter{T}.Do(Action{T})" />
public IParameter<HttpContent?> Do(Action<HttpContent?> callback)
=> parameter.Do(callback);

/// <inheritdoc cref="IHttpHeaderParameter{T}.WithHeaders" />
public IHttpContentHeaderParameter WithHeaders(
params IEnumerable<(string Name, HttpHeaderValue Value)> headers)
Comment thread
vbreuss marked this conversation as resolved.
=> parameter.WithHeaders(headers);

/// <inheritdoc cref="IHttpContentParameter.WithString(Func{string, bool})" />
public IHttpContentParameter WithString(Func<string, bool> predicate)
=> parameter.WithString(predicate);

/// <inheritdoc cref="IHttpContentParameter.WithBytes(Func{byte[], bool})" />
public IHttpContentParameter WithBytes(Func<byte[], bool> predicate)
=> parameter.WithBytes(predicate);

/// <inheritdoc cref="IHttpContentParameter.WithMediaType(string)" />
public IHttpContentParameter WithMediaType(string? mediaType)
=> parameter.WithMediaType(mediaType);

public bool Matches(HttpContent? value, HttpRequestMessage? requestMessage)
bool IHttpRequestMessagePropertyParameter<HttpContent?>.Matches(HttpContent? value,
HttpRequestMessage? requestMessage)
Comment thread
vbreuss marked this conversation as resolved.
{
if (parameter is IHttpRequestMessagePropertyParameter<HttpContent?> requestMessagePropertyParameter)
{
Expand All @@ -264,9 +273,11 @@ public bool Matches(HttpContent? value, HttpRequestMessage? requestMessage)
return Matches(value);
}

/// <inheritdoc cref="IParameter.Matches(object?)" />
public bool Matches(object? value)
=> ((IParameter)parameter).Matches(value);

/// <inheritdoc cref="IParameter.InvokeCallbacks(object?)" />
public void InvokeCallbacks(object? value)
=> ((IParameter)parameter).InvokeCallbacks(value);
}
Expand Down
13 changes: 13 additions & 0 deletions Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1860,6 +1860,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
public Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?> Do(System.Action<System.Net.Http.HttpContent?> callback) { }
public void InvokeCallbacks(object? value) { }
public bool Matches(object? value) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func<byte[], bool> predicate) { }
public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
"Name",
"Value"})] System.Collections.Generic.IEnumerable<System.ValueTuple<string, Mockolate.Web.HttpHeaderValue>> headers) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func<string, bool> predicate) { }
}
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();
Expand Down
13 changes: 13 additions & 0 deletions Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1859,6 +1859,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
public Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?> Do(System.Action<System.Net.Http.HttpContent?> callback) { }
public void InvokeCallbacks(object? value) { }
public bool Matches(object? value) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func<byte[], bool> predicate) { }
public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
"Name",
"Value"})] System.Collections.Generic.IEnumerable<System.ValueTuple<string, Mockolate.Web.HttpHeaderValue>> headers) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func<string, bool> predicate) { }
}
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();
Expand Down
13 changes: 13 additions & 0 deletions Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1800,6 +1800,19 @@ namespace Mockolate.Web
}
public static class ItExtensions
{
public abstract class HttpContentParameterWrapper : Mockolate.Parameters.IParameter, Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
protected HttpContentParameterWrapper(Mockolate.Web.ItExtensions.IHttpContentParameter parameter) { }
public Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?> Do(System.Action<System.Net.Http.HttpContent?> callback) { }
public void InvokeCallbacks(object? value) { }
public bool Matches(object? value) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithBytes(System.Func<byte[], bool> predicate) { }
public Mockolate.Web.ItExtensions.IHttpContentHeaderParameter WithHeaders([System.Runtime.CompilerServices.TupleElementNames(new string[] {
"Name",
"Value"})] System.Collections.Generic.IEnumerable<System.ValueTuple<string, Mockolate.Web.HttpHeaderValue>> headers) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithMediaType(string? mediaType) { }
public Mockolate.Web.ItExtensions.IHttpContentParameter WithString(System.Func<string, bool> predicate) { }
}
public interface IFormDataContentParameter : Mockolate.Parameters.IParameter<System.Net.Http.HttpContent?>, Mockolate.Web.ItExtensions.IHttpContentParameter, Mockolate.Web.ItExtensions.IHttpHeaderParameter<Mockolate.Web.ItExtensions.IHttpContentHeaderParameter>
{
Mockolate.Web.ItExtensions.IFormDataContentParameter Exactly();
Expand Down
Loading