using Tests.Builders; namespace Tests.Entities; [TestFixture] public class Student_Tests { [Test] public void DisplayFirstName_FallsBackToFirstName() { var student = StudentBuilder.Create("Josiah", "Brown").Build(); Assert.That(student.DisplayFirstName, Is.EqualTo("Josiah")); Assert.That(student.ToString(), Is.EqualTo("Josiah")); } [Test] public void DisplayFirstName_UsesTrimmedNickname() { var student = StudentBuilder.Create("Josiah", "Brown").WithNickname(" Jo ").Build(); Assert.That(student.DisplayFirstName, Is.EqualTo("Jo")); Assert.That(student.ToString(), Is.EqualTo("Jo")); } [Test] public void LegalNameProperties_IgnoreNickname() { var student = StudentBuilder.Create("Josiah", "Brown").WithNickname("Jo").Build(); Assert.That(student.FirstName, Is.EqualTo("Josiah")); Assert.That(student.LastName, Is.EqualTo("Brown")); Assert.That(student.Name, Is.EqualTo("Josiah Brown")); Assert.That(student.FirstNameLastName, Is.EqualTo("Josiah Brown")); Assert.That(student.LastNameFirstName, Is.EqualTo("Brown, Josiah")); } [Test] public void DisplayFirstName_TreatsWhitespaceAsUnset() { var student = StudentBuilder.Create("Josiah", "Brown").WithNickname(" ").Build(); Assert.That(student.DisplayFirstName, Is.EqualTo("Josiah")); } [Test] public void NormalizeNickname_ClearsBlankAndTrims() { var blank = StudentBuilder.Create("Josiah", "Brown").WithNickname(" ").Build(); blank.NormalizeNickname(); Assert.That(blank.Nickname, Is.Null); var nick = StudentBuilder.Create("Josiah", "Brown").WithNickname(" Jo ").Build(); nick.NormalizeNickname(); Assert.That(nick.Nickname, Is.EqualTo("Jo")); } }