You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr.TestLibrary/FluentAssertions/JsonEquivalencyStep.cs

28 lines
817 B

using FluentAssertions.Equivalency;
using FluentAssertions.Json;
using Newtonsoft.Json.Linq;
namespace Recyclarr.TestLibrary.FluentAssertions;
public class JsonEquivalencyStep : IEquivalencyStep
{
public EquivalencyResult Handle(
Comparands comparands,
IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator)
{
var canHandle = comparands.Subject?.GetType().IsAssignableTo(typeof(JToken)) ?? false;
if (!canHandle)
{
return EquivalencyResult.ContinueWithNext;
}
((JToken) comparands.Subject!).Should().BeEquivalentTo(
(JToken) comparands.Expectation,
context.Reason.FormattedMessage,
context.Reason.Arguments);
return EquivalencyResult.AssertionCompleted;
}
}