When New page per record is off, a single-table template shares one header across records. Event and team pages can print regional/state team counts and nationals eligibility. Co-authored-by: Cursor <cursoragent@cursor.com>
68 lines
3.5 KiB
C#
68 lines
3.5 KiB
C#
using Core.Entities;
|
|
using Core.Printing;
|
|
|
|
namespace Tests.Printing;
|
|
|
|
[TestFixture]
|
|
public class PrintFieldCatalog_Tests
|
|
{
|
|
[Test]
|
|
public void BuiltInFor_StudentIncludesChapterAndStudentTokens()
|
|
{
|
|
var tokens = PrintFieldCatalog.BuiltInFor(PrintEntityType.Student);
|
|
|
|
Assert.That(tokens, Does.Contain("FirstName"));
|
|
Assert.That(tokens, Does.Contain("Chapter.ShortName"));
|
|
Assert.That(tokens, Does.Contain("Rank1"));
|
|
Assert.That(tokens, Does.Contain("Rank10.ShortName"));
|
|
Assert.That(tokens, Does.Contain("Rank1.Attributes"));
|
|
Assert.That(tokens, Does.Contain(NoteTemplateMerger.RankedEventsToken));
|
|
Assert.That(tokens, Does.Not.Contain("Rank11"));
|
|
Assert.That(tokens, Does.Not.Contain("Interview Time"));
|
|
}
|
|
|
|
[Test]
|
|
public void StudentRanks_MatchesMaxRankAndStaysOffEntityTokens()
|
|
{
|
|
Assert.That(PrintFieldCatalog.StudentRanks, Does.Contain("Rank1"));
|
|
Assert.That(PrintFieldCatalog.StudentRanks, Does.Contain("Rank1.ShortName"));
|
|
Assert.That(PrintFieldCatalog.StudentRanks, Does.Contain("Rank1.Attributes"));
|
|
Assert.That(PrintFieldCatalog.StudentRanks, Does.Contain(NoteTemplateMerger.RankedEventsToken));
|
|
Assert.That(PrintFieldCatalog.StudentRanks, Has.Length.EqualTo(1 + StudentEventRanking.MaxRank * 3));
|
|
Assert.That(PrintFieldCatalog.EntityTokens(PrintEntityType.Student), Does.Not.Contain("Rank1"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Not.Contain("Rank1"));
|
|
}
|
|
|
|
[Test]
|
|
public void BuiltInFor_TeamAndEventHaveExpectedNames()
|
|
{
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Contain("EventName"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Contain("EventAttributes"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Contain("NationalEligibility"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Contain("RegionalTeamCount"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Team), Does.Contain("StateTeamCount"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain("RegionalEvent"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain("NationalEligibility"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain("RegionalTeamCount"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain("StateTeamCount"));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain(NoteTemplateMerger.RankedStudentsToken));
|
|
Assert.That(PrintFieldCatalog.BuiltInFor(PrintEntityType.Event), Does.Contain("EventAttributes"));
|
|
}
|
|
|
|
[Test]
|
|
public void Layout_IncludesPageBreakAndAnswerSpace()
|
|
{
|
|
Assert.That(PrintFieldCatalog.Layout, Does.Contain(NoteTemplateMerger.PageBreakToken));
|
|
Assert.That(PrintFieldCatalog.Layout, Does.Contain(NoteTemplateMerger.AnswerSpaceToken));
|
|
Assert.That(PrintFieldCatalog.Layout, Does.Contain(NoteTemplateMerger.LegendToken));
|
|
}
|
|
|
|
[Test]
|
|
public void EntityTokens_MatchesCatalogArrays()
|
|
{
|
|
Assert.That(PrintFieldCatalog.EntityTokens(PrintEntityType.Student), Is.EqualTo(PrintFieldCatalog.Student));
|
|
Assert.That(PrintFieldCatalog.EntityTokens(PrintEntityType.Team), Is.EqualTo(PrintFieldCatalog.Team));
|
|
Assert.That(PrintFieldCatalog.EntityTokens(PrintEntityType.Event), Is.EqualTo(PrintFieldCatalog.Event));
|
|
}
|
|
}
|