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.Event), Does.Contain("RegionalEvent")); 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)); } }