Files
Masterarbeit/QuellCode/CentronERP/tests/Centron.Tests.EndToEnd/Tests/MailTemplateRefs/MailTemplateReferenceTests.cs
T
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

110 lines
3.4 KiB
C#

using System.Linq;
using Centron.Core.Extensions;
using Centron.Interfaces;
using Centron.Interfaces.Mail.Enums;
using Centron.Interfaces.Mail.Templates;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.MailTemplateRefs;
public class MailTemplateReferenceTests : CentronTest
{
public MailTemplateReferenceTests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
[Fact]
public void CanLoadAllReferences()
{
int? objectI3D = 17;
var references = MailTemplateReferences.GetAllMailTemplateReferences(objectI3D);
this.Verifier.Verify($"AllMailTemplateReferences_ObjectI3D_{objectI3D}", references);
}
[Fact]
public void CanCreateMailTemplateReferencesTree()
{
var groups = MailTemplateReferences.CreateMailTemplateReferencesTree();
Assert.NotNull(groups);
this.Verifier.Verify($"AllMailTemplateGroups_WithReferences", groups);
}
[Fact]
public void LoadReferenceGroupByObjectKind()
{
var objectKind = CentronObjectKindNumeric.PLM;
var group = MailTemplateReferences.CreateMailTemplateReferencesTree(objectKind);
Assert.NotNull(group);
this.Verifier.Verify($"MailTemplateGroup_WithReferences_ObjectKind_{objectKind}", group);
}
[Fact]
public void CanLoadSpecificReferenceWithObjectI3D()
{
var reference = MailTemplateReferences.TryFindMailTemplateReference(CentronObjectKindNumeric.ContractClass, (int)ContractSubObjectKind.ContractType, objectI3D: 222);
Assert.NotNull(reference);
}
[Fact]
public void GetReferenceBasedOnReferenceObjectValues()
{
CentronObjectKindNumeric objectKind = CentronObjectKindNumeric.Account;
int? subObjectKind = null;
int? objectI3D = (int)CentronObjectKindNumeric.AccountNotification;
var reference = MailTemplateReferences.TryFindMailTemplateReference(objectKind, subObjectKind, objectI3D);
Assert.NotNull(reference);
Assert.Equal(objectKind, reference.ObjectKind);
Assert.Equal(subObjectKind, reference.SubObjectKind);
Assert.Equal(objectI3D, reference.ObjectI3D);
this.Verifier.Verify($"ReferenceBasedOnReferenceObjectValues", reference);
}
[Fact]
public void NoDuplicateReferences()
{
Test(1);
Test(10);
Test((int)CentronObjectKindNumeric.HelpdeskClass);
void Test(int objectI3D)
{
var references = MailTemplateReferences.GetAllMailTemplateReferences(objectI3D);
var hasDuplicates = references
.GroupBy(f => (f.ObjectKind, f.SubObjectKind, f.ObjectI3D))
.Where(f => f.Count() > 1)
.ToList();
Assert.Empty(hasDuplicates);
}
}
[Fact]
public void NoDuplicateReferenceGroups()
{
Test(CentronObjectKindNumeric.HelpdeskClass);
Test(CentronObjectKindNumeric.PLM);
void Test(CentronObjectKindNumeric objectKind)
{
var referenceGroups = MailTemplateReferences.CreateMailTemplateReferencesTree(objectKind);
var hasDuplicates = referenceGroups
.GroupBy(f => (f.ObjectKind))
.Where(f => f.Count() > 1)
.ToList();
Assert.Empty(hasDuplicates);
}
}
}