2 Commits

Author SHA1 Message Date
Developer 02
419974ba12 feat: Füge BaseDto-Datensatz mit überschriebenem GetHashCode 2024-06-06 15:17:22 +02:00
Developer 02
5b21f7f208 .gitignore aktualisieren 2024-06-06 15:17:03 +02:00
11 changed files with 111 additions and 4320 deletions

10
.gitignore vendored
View File

@@ -391,3 +391,13 @@ FodyWeavers.xsd
/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.csproj.FileListAbsolute.txt
/DigitalData.Core.Contracts/obj/DigitalData.Core.Contracts.csproj.nuget.dgspec.json
/DigitalData.Core.Contracts/obj/project.assets.json
/.vs/DigitalData.Core/v17/TestStore/0/000.testlog
/DigitalData.Core.Tests/obj/Debug/net7.0/DigitalData.Core.Tests.assets.cache
/DigitalData.Core.Tests/obj/DigitalData.Core.Tests.csproj.nuget.dgspec.json
/DigitalData.Core.Tests/obj/DigitalData.Core.Tests.csproj.nuget.g.targets
/DigitalData.Core.Tests/obj/project.assets.json
/.vs/DigitalData.Core/v17/TestStore/0/000.testlog
/DigitalData.Core.Tests/obj/Debug/net7.0/DigitalData.Core.Tests.assets.cache
/DigitalData.Core.Tests/obj/DigitalData.Core.Tests.csproj.nuget.dgspec.json
/DigitalData.Core.Tests/obj/DigitalData.Core.Tests.csproj.nuget.g.targets
/DigitalData.Core.Tests/obj/project.assets.json

View File

@@ -0,0 +1,17 @@
namespace DigitalData.Core.DTO
{
/// <summary>
/// Represents a base Data Transfer Object (DTO) with an identifier.
/// </summary>
/// <typeparam name="TId">The type of the identifier.</typeparam>
/// <param name="Id">The identifier of the DTO.</param>
public record BaseDto<TId>(TId Id) where TId : notnull
{
/// <summary>
/// Returns the hash code for this instance, based on the identifier.
/// This override ensures that the hash code is derived consistently from the identifier.
/// </summary>
/// <returns>A hash code for the current object, derived from the identifier.</returns>
public override int GetHashCode() => Id.GetHashCode();
}
}

View File

@@ -1,18 +0,0 @@
namespace DigitalData.Core.Tests
{
[TestFixture]
public class ADServiceTests
{
[SetUp]
public void Setup()
{
}
[Test]
public void ValidateUser_CorrectCredentials_ReturnsTrue()
{
}
}
}

View File

@@ -0,0 +1,79 @@
using DigitalData.Core.DTO;
namespace DigitalData.Core.Tests.DTO
{
public class BaseDtoTest
{
public record SampleDto(int Id) : BaseDto<int>(Id);
[Test]
public void EntitiesWithSameIdShouldBeEqual()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(1);
Assert.That(dto2, Is.EqualTo(dto1));
}
[Test]
public void EntitiesWithDifferentIdsShouldNotBeEqual()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(2);
Assert.That(dto2, Is.Not.EqualTo(dto1));
}
[Test]
public void GetHashCodeShouldReturnSameValueForEntitiesWithSameId()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(1);
Assert.That(dto2.GetHashCode(), Is.EqualTo(dto1.GetHashCode()));
}
[Test]
public void EqualsShouldReturnFalseForNull()
{
var dto = new SampleDto(1);
Assert.IsFalse(dto.Equals(null));
}
[Test]
public void EqualityOperatorShouldReturnTrueForSameReference()
{
var dto = new SampleDto(1);
Assert.That(dto, Is.EqualTo(dto));
}
[Test]
public void EqualityOperatorShouldReturnFalseForDifferentEntitiesWithDifferentIds()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(2);
Assert.IsFalse(dto1 == dto2);
}
[Test]
public void InequalityOperatorShouldReturnTrueForDifferentEntitiesWithDifferentIds()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(2);
Assert.IsTrue(dto1 != dto2);
}
[Test]
public void InequalityOperatorShouldReturnFalseForEntitiesWithSameId()
{
var dto1 = new SampleDto(1);
var dto2 = new SampleDto(1);
Assert.IsFalse(dto1 != dto2);
}
}
}

View File

@@ -18,4 +18,8 @@
<PackageReference Include="coverlet.collector" Version="3.1.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.Core.DTO\DigitalData.Core.DTO.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,99 +0,0 @@
{
"format": 1,
"restore": {
"E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Tests\\DigitalData.Core.Tests.csproj": {}
},
"projects": {
"E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Tests\\DigitalData.Core.Tests.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Tests\\DigitalData.Core.Tests.csproj",
"projectName": "DigitalData.Core.Tests",
"projectPath": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Tests\\DigitalData.Core.Tests.csproj",
"packagesPath": "C:\\Users\\tekh\\.nuget\\packages\\",
"outputPath": "E:\\TekH\\Visual Studio\\WebCoreModules\\DigitalData.Core.Tests\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\ProgramFiles\\DevExpress 21.2\\Components\\Offline Packages"
],
"configFilePaths": [
"C:\\Users\\tekh\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 21.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"D:\\ProgramFiles\\DevExpress 21.2\\Components\\System\\Components\\Packages": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"dependencies": {
"Microsoft.NET.Test.Sdk": {
"target": "Package",
"version": "[17.3.2, )"
},
"Moq": {
"target": "Package",
"version": "[4.20.70, )"
},
"NUnit": {
"target": "Package",
"version": "[3.13.3, )"
},
"NUnit.Analyzers": {
"target": "Package",
"version": "[3.5.0, )"
},
"NUnit3TestAdapter": {
"target": "Package",
"version": "[4.3.0, )"
},
"coverlet.collector": {
"target": "Package",
"version": "[3.1.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.200\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.codecoverage\17.3.2\build\netstandard1.0\Microsoft.CodeCoverage.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codecoverage\17.3.2\build\netstandard1.0\Microsoft.CodeCoverage.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.test.sdk\17.3.2\build\netcoreapp2.1\Microsoft.NET.Test.Sdk.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.test.sdk\17.3.2\build\netcoreapp2.1\Microsoft.NET.Test.Sdk.targets')" />
<Import Project="$(NuGetPackageRoot)coverlet.collector\3.1.2\build\netstandard1.0\coverlet.collector.targets" Condition="Exists('$(NuGetPackageRoot)coverlet.collector\3.1.2\build\netstandard1.0\coverlet.collector.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.Core.API", "Dig
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.Core.Tests", "DigitalData.Core.Tests\DigitalData.Core.Tests.csproj", "{B54DEF90-C30C-44EA-9875-76F1B330CBB7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DigitalData.Core.DTO", "DigitalData.Core.DTO\DigitalData.Core.DTO.csproj", "{0B051A5F-BD38-47D1-BAFF-D44BA30D3FB7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.Core.DTO", "DigitalData.Core.DTO\DigitalData.Core.DTO.csproj", "{0B051A5F-BD38-47D1-BAFF-D44BA30D3FB7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution