From 51d0219a1a12c080d7ff81f468f267909743d7bf Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sat, 10 Dec 2022 16:59:21 -0600 Subject: [PATCH] refactor: Move RegisterMockFor to extension method --- .../FluentValidation/FluentValidationExtensions.cs | 4 ++-- src/Recyclarr.TestLibrary/IntegrationFixture.cs | 13 ++++--------- .../Recyclarr.TestLibrary.csproj | 1 + src/TestLibrary/AutofacTestExtensions.cs | 12 ++++++++++++ 4 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 src/TestLibrary/AutofacTestExtensions.cs diff --git a/src/Common/FluentValidation/FluentValidationExtensions.cs b/src/Common/FluentValidation/FluentValidationExtensions.cs index 9de9260b..13503f95 100644 --- a/src/Common/FluentValidation/FluentValidationExtensions.cs +++ b/src/Common/FluentValidation/FluentValidationExtensions.cs @@ -21,12 +21,12 @@ public static class FluentValidationExtensions public static IEnumerable IsValid( this IEnumerable source, TValidator validator, Action, TSource>? handleInvalid = null) - where TValidator : IValidator, new() + where TValidator : IValidator { foreach (var s in source) { var result = validator.Validate(s); - if (result.IsValid) + if (result is {IsValid: true}) { yield return s; } diff --git a/src/Recyclarr.TestLibrary/IntegrationFixture.cs b/src/Recyclarr.TestLibrary/IntegrationFixture.cs index fbad9df8..156ad774 100644 --- a/src/Recyclarr.TestLibrary/IntegrationFixture.cs +++ b/src/Recyclarr.TestLibrary/IntegrationFixture.cs @@ -5,11 +5,11 @@ using Autofac; using Autofac.Features.ResolveAnything; using CliFx.Infrastructure; using Common.TestLibrary; -using NSubstitute; using NUnit.Framework; using Recyclarr.Command; using Serilog; using Serilog.Events; +using TestLibrary; using TrashLib; using TrashLib.Repo.VersionControl; using TrashLib.Startup; @@ -31,9 +31,9 @@ public abstract class IntegrationFixture : IDisposable builder.RegisterInstance(Console).As(); builder.RegisterInstance(Logger).As().SingleInstance(); - RegisterMockFor(builder); - RegisterMockFor(builder); - RegisterMockFor(builder); + builder.RegisterMockFor(); + builder.RegisterMockFor(); + builder.RegisterMockFor(); RegisterExtraTypes(builder); @@ -73,11 +73,6 @@ public abstract class IntegrationFixture : IDisposable // ReSharper restore MemberCanBePrivate.Global - private static void RegisterMockFor(ContainerBuilder builder) where T : class - { - builder.RegisterInstance(Substitute.For()).As(); - } - protected T Resolve() where T : notnull { return Container.Resolve(); diff --git a/src/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj b/src/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj index 289d6f05..83201793 100644 --- a/src/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj +++ b/src/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj @@ -2,5 +2,6 @@ + diff --git a/src/TestLibrary/AutofacTestExtensions.cs b/src/TestLibrary/AutofacTestExtensions.cs new file mode 100644 index 00000000..e2c3321c --- /dev/null +++ b/src/TestLibrary/AutofacTestExtensions.cs @@ -0,0 +1,12 @@ +using Autofac; +using NSubstitute; + +namespace TestLibrary; + +public static class AutofacTestExtensions +{ + public static void RegisterMockFor(this ContainerBuilder builder) where T : class + { + builder.RegisterInstance(Substitute.For()).As(); + } +}