public void ResolveDate(AssociationDateIndicator indicator, bool isMain, DateTime expected) { var association = TestAssociations.CreateAssociationWithServices(dateIndicator: indicator); var service = isMain ? association.Main.Service : association.Associated.Service; Assert.Equal(expected, association.ResolveDate(MondayAugust12, service.TimetableUid)); }
public void GetsAssociationAppliesOnDate(DateTime date, string timetableUID, AssociationDateIndicator dateIndicator, bool expected) { var association = TestAssociations.CreateAssociation( calendar: TestSchedules.CreateAugust2019Calendar(DaysFlag.Monday), dateIndicator: dateIndicator); Assert.Equal(expected, association.AppliesOn(date, timetableUID)); }
public void MapDateIndicator(string input, AssociationDateIndicator expected) { var association = Test.Cif.TestAssociations.CreateAssociation(); association.DateIndicator = input; var output = MapAssociation(association); Assert.Equal(expected, output.DateIndicator); }
public static Association CreateAssociationWithServices( CifService mainService = null, CifService associatedService = null, StpIndicator indicator = StpIndicator.Permanent, ICalendar calendar = null, Location location = null, AssociationCategory category = AssociationCategory.Join, AssociationDateIndicator dateIndicator = AssociationDateIndicator.Standard, string associatedUid = "A98765", string retailServiceId = "VT123402" ) { mainService = mainService ?? TestSchedules.CreateScheduleWithService("X12345").Service; associatedService = associatedService ?? TestSchedules.CreateScheduleWithService(associatedUid, retailServiceId: retailServiceId).Service; var association = CreateAssociation(mainService.TimetableUid, associatedService.TimetableUid, indicator, calendar, location, category, dateIndicator); mainService.AddAssociation(association, true); associatedService.AddAssociation(association, false); return(association); }
public static Association CreateAssociation( string mainUid = "X12345", string associatedUid = "A98765", StpIndicator indicator = StpIndicator.Permanent, ICalendar calendar = null, Location location = null, AssociationCategory category = AssociationCategory.Join, AssociationDateIndicator dateIndicator = AssociationDateIndicator.Standard) { location = location ?? TestLocations.CLPHMJN; var main = new AssociationService() { TimetableUid = mainUid, AtLocation = location, Sequence = 1, }; var associated = new AssociationService() { TimetableUid = associatedUid, AtLocation = location, Sequence = 1, }; var association = new Association(Substitute.For <ILogger>()) { Main = main, Associated = associated, AtLocation = location, StpIndicator = indicator, Category = category, DateIndicator = dateIndicator, Calendar = calendar ?? TestSchedules.EverydayAugust2019 }; return(association); }
public void GetsScheduleWithAssociationsApplyingMovingDateBasedUponDateIndicator(AssociationDateIndicator indicator, bool isMain, DateTime expected) { var association = TestAssociations.CreateAssociationWithServices(dateIndicator: indicator); var service = isMain ? association.Main.Service : association.Associated.Service; var other = isMain ? association.Associated.Service : association.Main.Service; var resolved = Associations(other.TimetableUid).Resolve(service.TimetableUid, MondayAugust12, "VT123401"); Assert.NotEmpty(resolved); Assert.Equal(expected, resolved[0].AssociatedService.On); AssociationDictionary Associations(string uid) { var values = new SortedList <(StpIndicator indicator, ICalendar calendar), Association>(); values.Add((StpIndicator.Permanent, association.Calendar), association); return(new AssociationDictionary(1, Substitute.For <ILogger>()) { { uid, values } }); } }