public void TrainLocationTimeModelClassPopulateMethodSetsEntryTypePropertyIfParametersAreProvided() { TrainLocationTimeModel testObject = GetTestObject(); TrainTime param0 = GetRandomTrainTime(); TimeDisplayFormattingStrings param1 = GetRandomFormattingStrings(); testObject.Populate(param0, param1); Assert.AreEqual(TrainLocationTimeEntryType.Time, testObject.EntryType); }
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); } }
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); } }
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); }
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); }
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(); }
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); }
public void TrainLocationTimeModelClassPopulateMethodDoesNotFailIfFirstParameterIsNull() { TrainLocationTimeModel testObject = GetTestObject(); testObject.Populate(null, GetRandomFormattingStrings()); }