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
110 lines
3.4 KiB
C#
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);
|
|
}
|
|
}
|
|
} |