Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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 }
                });
            }
        }