Esempio n. 1
0
        public void merges_extra_details_correctly()
        {
            var extraScheduleDetails = new BasicScheduleExtraDetailsRecord
            {
                AtsCode = "ATS",
                AtocCode = "ATOC",
                UicCode = "UIC",
                DataSource = "DATASOURCE",
                Rsid = "RSID"
            };

            var basicScheduleRecord = new ScheduleRecord();

            basicScheduleRecord.MergeExtraScheduleDetails(extraScheduleDetails);

            Assert.AreEqual(extraScheduleDetails.AtocCode, basicScheduleRecord.AtocCode);
            Assert.AreEqual(extraScheduleDetails.AtsCode, basicScheduleRecord.AtsCode);
            Assert.AreEqual(extraScheduleDetails.UicCode, basicScheduleRecord.UicCode);
            Assert.AreEqual(extraScheduleDetails.DataSource, basicScheduleRecord.DataSource);
            Assert.AreEqual(extraScheduleDetails.Rsid, basicScheduleRecord.Rsid);
        }
Esempio n. 2
0
        public void merges_extra_details_correctly()
        {
            var extraScheduleDetails = new BasicScheduleExtraDetailsRecord
            {
                AtsCode    = "ATS",
                AtocCode   = "ATOC",
                UicCode    = "UIC",
                DataSource = "DATASOURCE",
                Rsid       = "RSID"
            };

            var basicScheduleRecord = new ScheduleRecord();

            basicScheduleRecord.MergeExtraScheduleDetails(extraScheduleDetails);

            Assert.AreEqual(extraScheduleDetails.AtocCode, basicScheduleRecord.AtocCode);
            Assert.AreEqual(extraScheduleDetails.AtsCode, basicScheduleRecord.AtsCode);
            Assert.AreEqual(extraScheduleDetails.UicCode, basicScheduleRecord.UicCode);
            Assert.AreEqual(extraScheduleDetails.DataSource, basicScheduleRecord.DataSource);
            Assert.AreEqual(extraScheduleDetails.Rsid, basicScheduleRecord.Rsid);
        }
Esempio n. 3
0
        public void throws_when_argument_is_null()
        {
            var basicScheduleRecord = new ScheduleRecord();

            Assert.Throws<ArgumentNullException>(() => basicScheduleRecord.MergeExtraScheduleDetails(null));
        }
Esempio n. 4
0
        public IList <IScheduleRecord> MergeScheduleRecords(IList <IScheduleRecord> scheduleRecords)
        {
            if (scheduleRecords == null || !scheduleRecords.Any())
            {
                throw new ArgumentNullException(nameof(scheduleRecords));
            }

            var scheduleEntites = new List <IScheduleRecord>();

            ScheduleRecord scheduleRecord = null;

            foreach (var record in scheduleRecords)
            {
                switch (record.RecordIdentity)
                {
                case ScheduleRecordType.HD:
                    scheduleEntites.Add(record);
                    break;

                case ScheduleRecordType.TI:
                case ScheduleRecordType.TA:
                case ScheduleRecordType.TD:
                    scheduleEntites.Add(record);
                    break;

                case ScheduleRecordType.AAN:
                case ScheduleRecordType.AAR:
                case ScheduleRecordType.AAD:
                    scheduleEntites.Add(record);
                    break;

                case ScheduleRecordType.BSN:
                case ScheduleRecordType.BSR:
                case ScheduleRecordType.BSD:
                    if (scheduleRecord != null)
                    {
                        scheduleEntites.Add(scheduleRecord);
                        scheduleRecord = null;
                    }

                    scheduleRecord = record as ScheduleRecord;
                    break;

                case ScheduleRecordType.BX:
                    scheduleRecord?.MergeExtraScheduleDetails(record as BasicScheduleExtraDetailsRecord);
                    break;

                case ScheduleRecordType.LO:
                case ScheduleRecordType.LI:
                case ScheduleRecordType.LT:
                    scheduleRecord?.ScheduleLocations.Add(record as ScheduleLocationRecord);
                    break;

                case ScheduleRecordType.CR:
                case ScheduleRecordType.ZZ:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(scheduleEntites);
        }
Esempio n. 5
0
        public void throws_when_argument_is_null()
        {
            var basicScheduleRecord = new ScheduleRecord();

            Assert.Throws <ArgumentNullException>(() => basicScheduleRecord.MergeExtraScheduleDetails(null));
        }