Example #1
0
        public void TrainLocationTimeModelClassPopulateMethodSetsEntryTypePropertyIfParametersAreProvided()
        {
            TrainLocationTimeModel testObject = GetTestObject();
            TrainTime param0 = GetRandomTrainTime();
            TimeDisplayFormattingStrings param1 = GetRandomFormattingStrings();

            testObject.Populate(param0, param1);

            Assert.AreEqual(TrainLocationTimeEntryType.Time, testObject.EntryType);
        }
Example #2
0
        public void TrainLocationTimeModelExtensionsClassToTrainLocationTimeMethodReturnsObjectWithNullLocationPropertyIfLocationIdPropertyOfFirstParameterIsNull()
        {
            Dictionary <string, Location> locationMap = GetRandomLocationMap();
            Dictionary <string, Note>     noteMap     = GetRandomNotes();
            TrainLocationTimeModel        testObject  = GetTrainLocationTimeModel(locationMap, noteMap);

            testObject.LocationId = null;

            TrainLocationTime testResult = testObject.ToTrainLocationTime(locationMap, noteMap, GetDocumentOptions());

            Assert.IsNull(testResult.Location);
        }
        public void TrainLocationTimeModelClass_WriteXmlMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfParameterIsNull()
        {
            TrainLocationTimeModel testObject = new TrainLocationTimeModel();

            try
            {
                testObject.WriteXml(null);
                Assert.Fail();
            }
            catch (ArgumentNullException ex)
            {
                Assert.AreEqual("writer", ex.ParamName);
            }
        }
Example #4
0
        public void TrainLocationTimeModelExtensionsClass_ToTrainLocationTimeMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfFourthParameterIsNull()
        {
            TrainLocationTimeModel testObject = new TrainLocationTimeModel();

            try
            {
                _ = testObject.ToTrainLocationTime(new Dictionary <string, Location>(), new Dictionary <string, Note>(), null);
                Assert.Fail();
            }
            catch (ArgumentNullException ex)
            {
                Assert.AreEqual("options", ex.ParamName);
            }
        }
Example #5
0
        public void TrainLocationTimeModelExtensionsClassToTrainLocationTimeMethodReturnsObjectWithCorrectFormattingStringsProperty()
        {
            Dictionary <string, Location> locationMap = GetRandomLocationMap();
            Dictionary <string, Note>     noteMap     = GetRandomNotes();
            DocumentOptions        options            = GetDocumentOptions();
            TrainLocationTimeModel testObject         = GetTrainLocationTimeModel(locationMap, noteMap);

            TrainLocationTime testResult = testObject.ToTrainLocationTime(locationMap, noteMap, options);

            Assert.AreEqual(options.FormattingStrings.Complete, testResult.FormattingStrings.Complete);
            Assert.AreEqual(options.FormattingStrings.Hours, testResult.FormattingStrings.Hours);
            Assert.AreEqual(options.FormattingStrings.Minutes, testResult.FormattingStrings.Minutes);
            Assert.AreEqual(options.FormattingStrings.TimeWithoutFootnotes, testResult.FormattingStrings.TimeWithoutFootnotes);
        }
Example #6
0
        private static TrainLocationTimeModel GetTrainLocationTimeModel(Dictionary <string, Location> locationMap, Dictionary <string, Note> notes, bool hasArrivalTime)
        {
            string[] locationKeys      = locationMap.Keys.ToArray();
            string[] noteKeys          = notes.Keys.ToArray();
            TrainLocationTimeModel tlt = new TrainLocationTimeModel
            {
                ArrivalTime = hasArrivalTime ? new TrainTimeModel {
                    Time = _random.NextTimeOfDayModel(0, 86399)
                } : null,
                Line       = _random.NextString(_random.Next(3)),
                Path       = _random.NextString(_random.Next(3)),
                Platform   = _random.NextString(_random.Next(3)),
                Pass       = (!hasArrivalTime) && _random.Next(2) == 0,
                LocationId = locationKeys[_random.Next(locationKeys.Length)],
            };

            tlt.DepartureTime = hasArrivalTime ?
                                new TrainTimeModel
            {
                Time = _random.NextTimeOfDayModel(tlt.ArrivalTime.Time.Hours24 * 3600 + tlt.ArrivalTime.Time.Minutes * 60 + tlt.ArrivalTime.Time.Seconds, 0),
            } :
            new TrainTimeModel {
                Time = _random.NextTimeOfDayModel(0, 0)
            };
            int fnCount = _random.Next(2);

            for (int i = 0, j = 0; i < fnCount && j < noteKeys.Length; ++j)
            {
                if (_random.Next((noteKeys.Length - j) / (fnCount - i)) == 0)
                {
                    tlt.DepartureTime.FootnoteIds.Add(noteKeys[j]);
                    ++i;
                }
            }
            if (hasArrivalTime)
            {
                fnCount = _random.Next(2);
                for (int i = 0, j = 0; i < fnCount && j < noteKeys.Length; ++j)
                {
                    if (_random.Next((noteKeys.Length - j) / (fnCount - i)) == 0)
                    {
                        tlt.ArrivalTime.FootnoteIds.Add(noteKeys[j]);
                        ++i;
                    }
                }
            }

            return(tlt);
        }
Example #7
0
        public void TrainLocationTimeModelExtensionsToTrainLocationTimeMethodReturnsObjectWithNullLocationPropertyIfLocationIdPropertyOfFirstParameterIsNotPresentAsKeyInSecondParameter()
        {
            Dictionary <string, Location> locationMap = GetRandomLocationMap();
            Dictionary <string, Note>     noteMap     = GetRandomNotes();
            TrainLocationTimeModel        testObject  = GetTrainLocationTimeModel(locationMap, noteMap);

            do
            {
                testObject.LocationId = _random.NextHexString(8);
            } while (locationMap.ContainsKey(testObject.LocationId));

            TrainLocationTime testResult = testObject.ToTrainLocationTime(locationMap, noteMap, GetDocumentOptions());

            Assert.IsNull(testResult.Location);
        }
        public static List <ILocationEntry> GetTrainLocationTimeModelList(int min, int max)
        {
            int count = _random.Next(min, max);
            List <ILocationEntry>    items = new List <ILocationEntry>(count);
            List <MinimalUniqueItem> ids   = new List <MinimalUniqueItem>(count);

            for (int i = 0; i < count; ++i)
            {
                TrainLocationTimeModel item = GetTrainLocationTimeModel(ids);
                items.Add(item);
                ids.Add(new MinimalUniqueItem {
                    Id = item.LocationKey
                });
            }
            return(items);
        }
 private void ReadTrainTimes(XmlReader reader)
 {
     reader.ReadStartElement();
     do
     {
         reader.MoveToContent();
         if (reader.NodeType == XmlNodeType.EndElement)
         {
             break;
         }
         TrainLocationTimeModel ttm = new TrainLocationTimeModel();
         ttm.ReadXml(reader);
         TrainTimes.Add(ttm);
     } while (true);
     reader.ReadEndElement();
 }
Example #10
0
        private TrainLocationTimeModel GetTestObject()
        {
            TrainLocationTimeModel testObject = new TrainLocationTimeModel
            {
                ActualTime            = _rnd.NextTimeOfDay(),
                DisplayedTextFootnote = _rnd.NextString(_rnd.Next(3)),
                EntryType             = _rnd.NextBoolean() ? TrainLocationTimeEntryType.Time : TrainLocationTimeEntryType.RoutingCode,
                LocationId            = _rnd.NextString("0123456789abcdef", 8),
                LocationKey           = _rnd.NextString("0123456789abcdef", 10),
                IsPassingTime         = _rnd.NextBoolean(),
            };

            testObject.DisplayedTextHours   = testObject.ActualTime.ToString("h", CultureInfo.CurrentCulture);
            testObject.DisplayedTextMinutes = testObject.ActualTime.ToString("mm", CultureInfo.CurrentCulture);
            testObject.DisplayedText        = testObject.DisplayedTextHours + (testObject.DisplayedTextFootnote.Length == 0 ? testObject.DisplayedTextFootnote : " ") + testObject.DisplayedTextMinutes;
            return(testObject);
        }
 private TrainLocationTimeModel UpdateTrainLocationTimeModel(ref TrainLocationTimeModel model, TrainTime time, string idSuffix)
 {
     if (time == null || FormattingStrings == null || Location == null)
     {
         return(null);
     }
     if (model == null)
     {
         model = new TrainLocationTimeModel
         {
             LocationId  = Location.Id,
             LocationKey = Location.Id + idSuffix,
             EntryType   = TrainLocationTimeEntryType.Time,
         };
     }
     model.IsPassingTime = Pass;
     model.Populate(time, FormattingStrings);
     return(model);
 }
Example #12
0
        public void TrainLocationTimeModelClassPopulateMethodDoesNotFailIfFirstParameterIsNull()
        {
            TrainLocationTimeModel testObject = GetTestObject();

            testObject.Populate(null, GetRandomFormattingStrings());
        }