From 4bf7361c759ca0b257c3861fdd7631539464a313 Mon Sep 17 00:00:00 2001 From: Tony Troeff Date: Tue, 12 Aug 2025 00:02:12 +0300 Subject: [PATCH] Replaced `Moq` with `NSubstitute` everywhere. --- .../CollectionEqualizationProfileTests.cs | 22 ++++++--------- .../TestsCompanion.cs | 28 +++++++++---------- .../TryAtSoftware.Equalizer.Core.Tests.csproj | 2 +- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/TryAtSoftware.Equalizer.Core.Tests/CollectionEqualizationProfileTests.cs b/TryAtSoftware.Equalizer.Core.Tests/CollectionEqualizationProfileTests.cs index 5d933a9..67304fe 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/CollectionEqualizationProfileTests.cs +++ b/TryAtSoftware.Equalizer.Core.Tests/CollectionEqualizationProfileTests.cs @@ -1,7 +1,7 @@ namespace TryAtSoftware.Equalizer.Core.Tests; using System; -using Moq; +using NSubstitute.ReceivedExtensions; using TryAtSoftware.Equalizer.Core.Profiles; using TryAtSoftware.Randomizer.Core.Helpers; using Xunit; @@ -21,9 +21,9 @@ public void NullCollectionsShouldNotBeEqualized() public void EmptyCollectionsShouldBeEqualizedSuccessfully() { var profile = InstantiateProfile(); - var equalizationOptionsMock = TestsCompanion.MockEqualizationOptions(); + var equalizationOptions = TestsCompanion.MockEqualizationOptions(); - var equalizationResult = profile.Equalize(Array.Empty(), Array.Empty(), equalizationOptionsMock.Object); + var equalizationResult = profile.Equalize(Array.Empty(), Array.Empty(), equalizationOptions); Assert.True(equalizationResult.IsSuccessful); } @@ -37,7 +37,7 @@ public void CollectionsWithDifferentLengthShouldBeEqualizedUnsuccessfully(int fi var profile = InstantiateProfile(); var equalizationOptionsMock = TestsCompanion.MockEqualizationOptions(); - var equalizationResult = profile.Equalize(new int[firstArrayLength], new int[secondArrayLength], equalizationOptionsMock.Object); + var equalizationResult = profile.Equalize(new int[firstArrayLength], new int[secondArrayLength], equalizationOptionsMock); Assert.False(equalizationResult.IsSuccessful); } @@ -45,7 +45,7 @@ public void CollectionsWithDifferentLengthShouldBeEqualizedUnsuccessfully(int fi public void CollectionsShouldBeEqualizedSuccessfully() { var profile = InstantiateProfile(); - var equalizationOptionsMock = TestsCompanion.MockEqualizationOptions(); + var equalizationOptions = TestsCompanion.MockEqualizationOptions(); var elementsCount = RandomizationHelper.RandomInteger(3, 10); var firstArray = new int[elementsCount]; @@ -58,7 +58,7 @@ public void CollectionsShouldBeEqualizedSuccessfully() secondArray[i] = element; } - var equalizationResult = profile.Equalize(firstArray, secondArray, equalizationOptionsMock.Object); + var equalizationResult = profile.Equalize(firstArray, secondArray, equalizationOptions); Assert.True(equalizationResult.IsSuccessful); } @@ -69,22 +69,18 @@ public void CollectionsWithDifferentElementsShouldBeEqualizedUnsuccessfully() var indexOfFailure = RandomizationHelper.RandomInteger(0, elementsCount); var profile = InstantiateProfile(); - var equalizationOptionsMock = TestsCompanion.MockEqualizationOptions((a, b) => (int)a == indexOfFailure && (int)b == indexOfFailure ? new UnsuccessfulEqualizationResult("Simulated failure") : new SuccessfulEqualizationResult()); + var equalizationOptions = TestsCompanion.MockEqualizationOptions((a, b) => (int)a == indexOfFailure && (int)b == indexOfFailure ? new UnsuccessfulEqualizationResult("Simulated failure") : new SuccessfulEqualizationResult()); int[] firstArray = new int[elementsCount], secondArray = new int[elementsCount]; for (var i = 0; i < elementsCount; i++) (firstArray[i], secondArray[i]) = (i, i); - var equalizationResult = profile.Equalize(firstArray, secondArray, equalizationOptionsMock.Object); + var equalizationResult = profile.Equalize(firstArray, secondArray, equalizationOptions); Assert.False(equalizationResult.IsSuccessful); Assert.False(string.IsNullOrWhiteSpace(equalizationResult.Message)); for (var i = 0; i < elementsCount; i++) - { - var currentParameterValue = i; - var expectedTimes = i <= indexOfFailure ? Times.Once() : Times.Never(); - equalizationOptionsMock.Verify(x => x.Equalize(currentParameterValue, currentParameterValue), expectedTimes); - } + equalizationOptions.Received(i <= indexOfFailure ? Quantity.Exactly(1) : Quantity.None()).Equalize(i, i); } private static CollectionEqualizationProfile InstantiateProfile() => new (); diff --git a/TryAtSoftware.Equalizer.Core.Tests/TestsCompanion.cs b/TryAtSoftware.Equalizer.Core.Tests/TestsCompanion.cs index 66bba79..51b6a6c 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/TestsCompanion.cs +++ b/TryAtSoftware.Equalizer.Core.Tests/TestsCompanion.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; -using Moq; +using NSubstitute; using TryAtSoftware.Equalizer.Core.Interfaces; using TryAtSoftware.Randomizer.Core.Helpers; using Xunit; @@ -30,27 +30,25 @@ public static (IEnumerable All, IEqualizationProfile Execu } public static IEqualizationProfileProvider MockEqualizationProfileProvider() - { - var profileProviderMock = new Mock(); - return profileProviderMock.Object; - } + => Substitute.For(); public static IEqualizationProfile MockEqualizationProfile(bool isExecutable = false) { - var profileMock = new Mock(); - profileMock.Setup(x => x.CanExecuteFor(It.IsAny(), It.IsAny())).Returns(isExecutable); + var profile = Substitute.For(); + profile.CanExecuteFor(Arg.Any(), Arg.Any()).Returns(isExecutable); - return profileMock.Object; + return profile; } - public static Mock MockEqualizationOptions() => MockEqualizationOptions((_, _) => new SuccessfulEqualizationResult()); + public static IEqualizationOptions MockEqualizationOptions() => MockEqualizationOptions((_, _) => new SuccessfulEqualizationResult()); - public static Mock MockEqualizationOptions(Func internalEqualization) + public static IEqualizationOptions MockEqualizationOptions(Func internalEqualization) { - var equalizationOptionsMock = new Mock(); - equalizationOptionsMock.Setup(eo => eo.Equalize(It.IsAny(), It.IsAny())).Returns(internalEqualization); - equalizationOptionsMock.Setup(eo => eo.ExpectedType).Returns(typeof(object)); - equalizationOptionsMock.Setup(eo => eo.ActualType).Returns(typeof(object)); - return equalizationOptionsMock; + var equalizationOptions = Substitute.For(); + equalizationOptions.Equalize(Arg.Any(), Arg.Any()).Returns(x => internalEqualization(x[0], x[1])); + equalizationOptions.ExpectedType.Returns(typeof(object)); + equalizationOptions.ActualType.Returns(typeof(object)); + + return equalizationOptions; } } \ No newline at end of file diff --git a/TryAtSoftware.Equalizer.Core.Tests/TryAtSoftware.Equalizer.Core.Tests.csproj b/TryAtSoftware.Equalizer.Core.Tests/TryAtSoftware.Equalizer.Core.Tests.csproj index 147ab1c..b93fab9 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/TryAtSoftware.Equalizer.Core.Tests.csproj +++ b/TryAtSoftware.Equalizer.Core.Tests/TryAtSoftware.Equalizer.Core.Tests.csproj @@ -10,7 +10,7 @@ - +