From 28d1f0446313fb5d8f9403922eb75a59fd63dbf4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 5 Nov 2025 14:47:50 +0000 Subject: [PATCH 1/4] Initial plan From f38de4aeb804d6e7dfc3e0ae027be7b67dfce623 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 5 Nov 2025 14:53:36 +0000 Subject: [PATCH 2/4] Add CheckEquality method to IEqualizer interface and implementation Co-authored-by: TonyTroeff <33567383+TonyTroeff@users.noreply.github.com> --- .../EqualizationTests.cs | 53 +++++++++++++++++++ TryAtSoftware.Equalizer.Core/Equalizer.cs | 7 +++ .../Interfaces/IEqualizer.cs | 8 +++ 3 files changed, 68 insertions(+) diff --git a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs index aba2de4..cb10c85 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs +++ b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs @@ -119,6 +119,59 @@ public void EqualizationShouldIgnoreMembersThatAreNotConfigured() equalizer.AssertEquality(repositoryPrototype, extendedRepository); } + [Fact] + public void CheckEqualityShouldReturnTrueForLogicallyEqualEntities() + { + var repositoryPrototype = PrepareRepositoryPrototype(); + var repository = new CodeRepository(); + PrepareRepository(repository); + + var equalizer = PrepareEqualizer(); + var result = equalizer.CheckEquality(repositoryPrototype, repository); + + Assert.True(result); + } + + [Theory] + [MemberData(nameof(GetChanges))] + public void CheckEqualityShouldReturnFalseForLogicallyUnequalEntities(Action change) + { + Assert.NotNull(change); + var repositoryPrototype = PrepareRepositoryPrototype(); + var repository = new CodeRepository(); + PrepareRepository(repository); + + change(repository); + + var equalizer = PrepareEqualizer(); + var result = equalizer.CheckEquality(repositoryPrototype, repository); + + Assert.False(result); + } + + [Theory] + [InlineData(null, null)] + [InlineData(10, 10)] + public void CheckEqualityShouldReturnTrueForKnownEqualValues(object? expected, object? actual) + { + var equalizer = new Equalizer(); + var result = equalizer.CheckEquality(expected, actual); + + Assert.True(result); + } + + [Theory] + [InlineData(null, "val")] + [InlineData("val", null)] + [InlineData(10, 10.0)] + public void CheckEqualityShouldReturnFalseForKnownUnequalValues(object? expected, object? actual) + { + var equalizer = new Equalizer(); + var result = equalizer.CheckEquality(expected, actual); + + Assert.False(result); + } + public static IEnumerable GetChanges() { yield return new object[] { new Action(rp => rp.Id = 0) }; diff --git a/TryAtSoftware.Equalizer.Core/Equalizer.cs b/TryAtSoftware.Equalizer.Core/Equalizer.cs index da118b3..0263da7 100644 --- a/TryAtSoftware.Equalizer.Core/Equalizer.cs +++ b/TryAtSoftware.Equalizer.Core/Equalizer.cs @@ -55,6 +55,13 @@ public void AssertInequality(object? expected, object? actual) AssertCorrectEqualizationResult(equalizationResult); } + /// + public bool CheckEquality(object? expected, object? actual) + { + var equalizationResult = this.Equalize(expected, actual); + return equalizationResult.IsSuccessful; + } + /// /// Use this method to register an external . /// diff --git a/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs b/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs index f12fadc..7bd60c8 100644 --- a/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs +++ b/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs @@ -18,4 +18,12 @@ public interface IEqualizer /// The expected object instance. /// The actual object instance. void AssertInequality(object? expected, object? actual); + + /// + /// Use this method to check the equality between the two values. + /// + /// The expected object instance. + /// The actual object instance. + /// true if the values are equal; otherwise, false. + bool CheckEquality(object? expected, object? actual); } \ No newline at end of file From c970f83c15dc5aeb78070567839a6c2764e02eff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 8 Nov 2025 07:19:06 +0000 Subject: [PATCH 3/4] Refactor tests to use helper methods and update XML documentation Co-authored-by: TonyTroeff <33567383+TonyTroeff@users.noreply.github.com> --- .../EqualizationTests.cs | 77 +++++-------------- .../Interfaces/IEqualizer.cs | 2 +- 2 files changed, 20 insertions(+), 59 deletions(-) diff --git a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs index cb10c85..330c3d5 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs +++ b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs @@ -44,7 +44,7 @@ public void EqualityShouldBeAssertedSuccessfullyForLogicallyEqualEntities() PrepareRepository(repository); var equalizer = PrepareEqualizer(); - equalizer.AssertEquality(repositoryPrototype, repository); + AssertEquality(equalizer, repositoryPrototype, repository); } [Theory] @@ -68,7 +68,7 @@ public void EqualityShouldBeAssertedSuccessfullyForLogicallyUnequalEntities(Acti public void EqualityShouldBeAssertedSuccessfullyForKnownValues(object? expected, object? actual) { var equalizer = new Equalizer(); - equalizer.AssertEquality(expected, actual); + AssertEquality(equalizer, expected, actual); } [Fact] @@ -94,7 +94,7 @@ public void InequalityShouldBeAssertedSuccessfullyForLogicallyUnequalEntities(Ac change(repository); var equalizer = PrepareEqualizer(); - equalizer.AssertInequality(repositoryPrototype, repository); + AssertInequality(equalizer, repositoryPrototype, repository); } [Theory] @@ -104,7 +104,7 @@ public void InequalityShouldBeAssertedSuccessfullyForLogicallyUnequalEntities(Ac public void InequalityShouldBeAssertedSuccessfullyForKnownValues(object? expected, object? actual) { var equalizer = new Equalizer(); - equalizer.AssertInequality(expected, actual); + AssertInequality(equalizer, expected, actual); } [Fact] @@ -116,60 +116,7 @@ public void EqualizationShouldIgnoreMembersThatAreNotConfigured() extendedRepository.CreationTime = DateTime.Today; var equalizer = PrepareEqualizer(); - equalizer.AssertEquality(repositoryPrototype, extendedRepository); - } - - [Fact] - public void CheckEqualityShouldReturnTrueForLogicallyEqualEntities() - { - var repositoryPrototype = PrepareRepositoryPrototype(); - var repository = new CodeRepository(); - PrepareRepository(repository); - - var equalizer = PrepareEqualizer(); - var result = equalizer.CheckEquality(repositoryPrototype, repository); - - Assert.True(result); - } - - [Theory] - [MemberData(nameof(GetChanges))] - public void CheckEqualityShouldReturnFalseForLogicallyUnequalEntities(Action change) - { - Assert.NotNull(change); - var repositoryPrototype = PrepareRepositoryPrototype(); - var repository = new CodeRepository(); - PrepareRepository(repository); - - change(repository); - - var equalizer = PrepareEqualizer(); - var result = equalizer.CheckEquality(repositoryPrototype, repository); - - Assert.False(result); - } - - [Theory] - [InlineData(null, null)] - [InlineData(10, 10)] - public void CheckEqualityShouldReturnTrueForKnownEqualValues(object? expected, object? actual) - { - var equalizer = new Equalizer(); - var result = equalizer.CheckEquality(expected, actual); - - Assert.True(result); - } - - [Theory] - [InlineData(null, "val")] - [InlineData("val", null)] - [InlineData(10, 10.0)] - public void CheckEqualityShouldReturnFalseForKnownUnequalValues(object? expected, object? actual) - { - var equalizer = new Equalizer(); - var result = equalizer.CheckEquality(expected, actual); - - Assert.False(result); + AssertEquality(equalizer, repositoryPrototype, extendedRepository); } public static IEnumerable GetChanges() @@ -225,4 +172,18 @@ private static void PrepareRepository(CodeRepository codeRepository) } private static IEnumerable PrepareInitialCommits() => new[] { "A", "B", "C", "merge A and B" }; + + private static void AssertEquality(Equalizer equalizer, object? expected, object? actual) + { + var checkResult = equalizer.CheckEquality(expected, actual); + Assert.True(checkResult); + equalizer.AssertEquality(expected, actual); + } + + private static void AssertInequality(Equalizer equalizer, object? expected, object? actual) + { + var checkResult = equalizer.CheckEquality(expected, actual); + Assert.False(checkResult); + equalizer.AssertInequality(expected, actual); + } } \ No newline at end of file diff --git a/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs b/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs index 7bd60c8..6724509 100644 --- a/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs +++ b/TryAtSoftware.Equalizer.Core/Interfaces/IEqualizer.cs @@ -20,7 +20,7 @@ public interface IEqualizer void AssertInequality(object? expected, object? actual); /// - /// Use this method to check the equality between the two values. + /// Use this method to check if two values are equal. /// /// The expected object instance. /// The actual object instance. From e07689dcb25a56b0239ef66b07aa8b02cf8fcf9f Mon Sep 17 00:00:00 2001 From: Tonyslav Troeff Date: Sat, 8 Nov 2025 07:26:16 +0000 Subject: [PATCH 4/4] Improve code quality --- TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs index 330c3d5..37fabc7 100644 --- a/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs +++ b/TryAtSoftware.Equalizer.Core.Tests/EqualizationTests.cs @@ -175,15 +175,13 @@ private static void PrepareRepository(CodeRepository codeRepository) private static void AssertEquality(Equalizer equalizer, object? expected, object? actual) { - var checkResult = equalizer.CheckEquality(expected, actual); - Assert.True(checkResult); + Assert.True(equalizer.CheckEquality(expected, actual)); equalizer.AssertEquality(expected, actual); } private static void AssertInequality(Equalizer equalizer, object? expected, object? actual) { - var checkResult = equalizer.CheckEquality(expected, actual); - Assert.False(checkResult); + Assert.False(equalizer.CheckEquality(expected, actual)); equalizer.AssertInequality(expected, actual); } } \ No newline at end of file