From e3b9d2971b87e25cb2471344051b887bf45d95ff Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Thu, 17 Apr 2025 17:36:07 +0200 Subject: [PATCH] Refactor User and UserDto to inherit from UserBase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Aktualisierte `User` und `UserDto` Klassen um von einer neuen `UserBase` Klasse zu erben. - Verschieben der Eigenschaften `Vorname`, `Email` und `Alter` zu `UserBase`. - Implementierung der überschriebenen Methoden `GetHashCode` und `Equals` sowohl in `User` als auch in `UserDto`, um die Eigenschaften der Basisklasse zu nutzen. --- DigitalData.Core.Tests/Mock/User.cs | 10 +++++----- DigitalData.Core.Tests/Mock/UserBase.cs | 14 ++++++++++++++ DigitalData.Core.Tests/Mock/UserDto.cs | 7 +------ 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 DigitalData.Core.Tests/Mock/UserBase.cs diff --git a/DigitalData.Core.Tests/Mock/User.cs b/DigitalData.Core.Tests/Mock/User.cs index c2e1b1a..ce8d780 100644 --- a/DigitalData.Core.Tests/Mock/User.cs +++ b/DigitalData.Core.Tests/Mock/User.cs @@ -1,12 +1,12 @@ namespace DigitalData.Core.Tests.Mock; -public class User +public class User : UserBase { public required int Id { get; init; } - public required string FirstName { get; init; } + public override int GetHashCode() => HashCode.Combine(Id, FirstName, Email, Age); - public required string Email { get; init; } - - public int Age { get; init; } + public override bool Equals(object? obj) + => (obj is User user && user.GetHashCode() == GetHashCode()) + || (obj is UserBase userBase && userBase.GetHashCode() == base.GetHashCode()); } diff --git a/DigitalData.Core.Tests/Mock/UserBase.cs b/DigitalData.Core.Tests/Mock/UserBase.cs new file mode 100644 index 0000000..ea8cc79 --- /dev/null +++ b/DigitalData.Core.Tests/Mock/UserBase.cs @@ -0,0 +1,14 @@ +namespace DigitalData.Core.Tests.Mock; + +public class UserBase +{ + public required string FirstName { get; init; } + + public required string Email { get; init; } + + public required int Age { get; init; } + + public override int GetHashCode() => HashCode.Combine(FirstName, Email, Age); + + public override bool Equals(object? obj) => obj is UserBase user && user.GetHashCode() == GetHashCode(); +} diff --git a/DigitalData.Core.Tests/Mock/UserDto.cs b/DigitalData.Core.Tests/Mock/UserDto.cs index f763db4..928b59c 100644 --- a/DigitalData.Core.Tests/Mock/UserDto.cs +++ b/DigitalData.Core.Tests/Mock/UserDto.cs @@ -1,10 +1,5 @@ namespace DigitalData.Core.Tests.Mock; -public class UserDto +public class UserDto : UserBase { - public required string FirstName { get; init; } - - public required string Email { get; init; } - - public int Age { get; init; } }