using Core.Entities; using Core.Parsers.EventOccurrence; using NUnit.Framework; namespace Tests.Parsers.EventOccurrence; [TestFixture] public class EventDefinitionResolver_Tests { [Test] public void Resolve_SpecialEventPattern_MeetTheCandidates_ReturnsCorrectDefinition() { // Act var result = EventDefinitionResolver.Resolve("Meet the Candidates Session 1", null); // Assert Assert.That(result, Is.EqualTo(EventDefinition.MeetTheCandidates)); } [Test] public void Resolve_SpecialEventPattern_ChapterOfficerMeeting_ReturnsCorrectDefinition() { // Act var result = EventDefinitionResolver.Resolve("Chapter Officer Meeting - MS", null); // Assert Assert.That(result, Is.EqualTo(EventDefinition.ChapterOfficerMeeting)); } [Test] public void Resolve_SpecialEventPattern_VotingDelegateMeeting_ReturnsCorrectDefinition() { // Act var result = EventDefinitionResolver.Resolve("Voting Delegate Meeting", null); // Assert Assert.That(result, Is.EqualTo(EventDefinition.VotingDelegateMeeting)); } [Test] public void Resolve_SpecialEventPattern_CaseInsensitive_Works() { // Act var result = EventDefinitionResolver.Resolve("MEET THE CANDIDATES", null); // Assert Assert.That(result, Is.EqualTo(EventDefinition.MeetTheCandidates)); } [Test] public void Resolve_GeneralSchedule_CurrentEventGeneralSchedule_ReturnsGeneralSchedule() { // Act var result = EventDefinitionResolver.Resolve("Some Event Name", EventDefinition.GeneralSchedule); // Assert Assert.That(result, Is.EqualTo(EventDefinition.GeneralSchedule)); } [Test] public void Resolve_CurrentEventDefinition_ReturnsCurrentEvent() { // Arrange var currentEvent = new EventDefinition { Name = "Test Event" }; // Act var result = EventDefinitionResolver.Resolve("Some Occurrence", currentEvent); // Assert Assert.That(result, Is.EqualTo(currentEvent)); } [Test] public void Resolve_SpecialEventPattern_TakesPrecedenceOverCurrentEvent() { // Arrange var currentEvent = new EventDefinition { Name = "Test Event" }; // Act var result = EventDefinitionResolver.Resolve("Meet the Candidates Session 1", currentEvent); // Assert Assert.That(result, Is.EqualTo(EventDefinition.MeetTheCandidates)); Assert.That(result, Is.Not.EqualTo(currentEvent)); } [Test] public void Resolve_NoMatch_ReturnsNull() { // Act var result = EventDefinitionResolver.Resolve("Unknown Event Name", null); // Assert Assert.That(result, Is.Null); } [Test] public void Resolve_NoMatch_CurrentEventNull_ReturnsNull() { // Act var result = EventDefinitionResolver.Resolve("Unknown Event Name", null); // Assert Assert.That(result, Is.Null); } }