/// <summary> /// Default constructor - sets the version number and creates empty objects for deep properties. /// </summary> public TimetableDocument() { Version = 2; TrainClassList = new TrainClassCollection(); TrainClassList.TrainClassAdd += TrainClassChangedHandler; TrainClassList.TrainClassRemove -= TrainClassChangedHandler; TrainList = new TrainCollection(); TrainList.TrainAdd += TrainAddHandler; TrainList.TrainRemove += TrainRemoveHandler; LocationList = new LocationCollection(); LocationList.LocationAdd += LocationChangedHandler; LocationList.LocationRemove += LocationChangedHandler; DownTrainsDisplay = new TimetableSectionModel(Direction.Down, LocationList); UpTrainsDisplay = new TimetableSectionModel(Direction.Up, LocationList); Signalboxes = new SignalboxCollection(); Signalboxes.SignalboxAdd += SignalboxChangedHandler; Signalboxes.SignalboxRemove += SignalboxChangedHandler; SignalboxHoursSets = new SignalboxHoursSetCollection(); SignalboxHoursSets.SignalboxHoursSetAdd += SignalboxHoursSetChangedHandler; SignalboxHoursSets.SignalboxHoursSetRemove += SignalboxHoursSetChangedHandler; Options = new DocumentOptions(); NoteDefinitions = new NoteCollection(); NoteDefinitions.NoteAdd += NoteChangedHandler; NoteDefinitions.NoteRemove += NoteChangedHandler; ExportOptions = new DocumentExportOptions(); }
/// <summary> /// Constructor. /// </summary> /// <param name="locations">Locations to include in this template.</param> /// <param name="notes">Footnote definitions to include in this template.</param> /// <param name="classes">Train classes to include in this template.</param> /// <param name="boxes">Signalboxes to include in this template.</param> public DocumentTemplate(IEnumerable <Location> locations, IEnumerable <Note> notes, IEnumerable <TrainClass> classes, IEnumerable <Signalbox> boxes) { Locations = new LocationCollection(locations ?? Array.Empty <Location>()); NoteDefinitions = new NoteCollection(notes ?? Array.Empty <Note>()); TrainClasses = new TrainClassCollection(classes ?? Array.Empty <TrainClass>()); Signalboxes = new SignalboxCollection(boxes ?? Array.Empty <Signalbox>()); }
public void TrainEditFormModelClass_Constructor_SetsValidClassesPropertyToSecondParameter() { LocationCollection testParam0 = new LocationCollection(); TrainClassCollection testParam1 = new TrainClassCollection(); IEnumerable <Note> testParam2 = GetNotes(); IEnumerable <Note> testParam3 = GetNotes(); TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3); Assert.AreSame(testParam1, testOutput.ValidClasses); }
public void TrainEditFormModelClass_Constructor_SetsValidTimingPointNotesToEmptyList_IfFourthParameterIsNull() { LocationCollection testParam0 = new LocationCollection(); TrainClassCollection testParam1 = new TrainClassCollection(); IEnumerable <Note> testParam2 = GetNotes(); IEnumerable <Note> testParam3 = null; TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3); Assert.IsNotNull(testOutput.ValidTimingPointNotes); Assert.AreEqual(0, testOutput.ValidTimingPointNotes.Count); }
/// <summary> /// Constructor. /// </summary> /// <param name="locations">Valid locations for timing points.</param> /// <param name="classes">Valid train classes.</param> /// <param name="trainNotes">Valid footnotes that may appear in train headers.</param> /// <param name="timingPointNotes">Valid footnotes that may appear in timing points.</param> public TrainEditFormModel(LocationCollection locations, TrainClassCollection classes, IEnumerable <Note> trainNotes, IEnumerable <Note> timingPointNotes) { ValidLocations = locations; ValidClasses = classes; ValidTrainNotes = new List <Note>(); ValidTimingPointNotes = new List <Note>(); if (trainNotes != null) { ValidTrainNotes.AddRange(trainNotes); } if (timingPointNotes != null) { ValidTimingPointNotes.AddRange(timingPointNotes); } }
public void TrainEditFormModelClass_Constructor_SetsValidTrainNotesToListContainingSameDataAsThirdParameter_IfThirdParameterIsNotNull() { LocationCollection testParam0 = new LocationCollection(); TrainClassCollection testParam1 = new TrainClassCollection(); IEnumerable <Note> testParam2 = GetNotes(); IEnumerable <Note> testParam3 = GetNotes(); TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3); Note[] testParamData = testParam2.ToArray(); Assert.AreEqual(testParamData.Length, testOutput.ValidTrainNotes.Count); for (int i = 0; i < testParamData.Length; ++i) { Assert.AreSame(testParamData[i], testOutput.ValidTrainNotes[i]); } }
/// <summary> /// Default constructor. /// </summary> public TrainClassListEditForm(TrainClassCollection model) { InitializeComponent(); Model = model; }