public void TimetableDocumentTemplateModelClass_Constructor_SetsTrainClassesPropertyToEmptyCollection() { TimetableDocumentTemplateModel testOutput = new TimetableDocumentTemplateModel(); Assert.IsNotNull(testOutput.TrainClasses); Assert.AreEqual(0, testOutput.TrainClasses.Count); }
/// <summary> /// Convert a <see cref="TimetableDocumentTemplateModel" /> instance to a <see cref="DocumentTemplate" /> instance. /// </summary> /// <param name="model">The object to be converted.</param> /// <returns>A <see cref="DocumentTemplate" /> instance containing the same data as the parameter.</returns> /// <exception cref="NullReferenceException">Thrown if the parameter is <c>null</c>.</exception> public static DocumentTemplate ToDocumentTemplate(this TimetableDocumentTemplateModel model) { if (model is null) { throw new NullReferenceException(); } IEnumerable <Location> locationSource; if (model.Maps != null && model.Maps.Count > 0 && model.Maps[0] != null) { locationSource = model.Maps[0].LocationList.Select(l => l.ToLocation()); } else { locationSource = Array.Empty <Location>(); } DocumentTemplate template = new DocumentTemplate( locationSource, model.NoteDefinitions.Select(n => n.ToNote()), model.TrainClasses.Select(c => c.ToTrainClass()), model.Maps[0].Signalboxes.Select(s => s.ToSignalbox())) { DocumentOptions = model.DefaultOptions.ToDocumentOptions(), ExportOptions = model.DefaultExportOptions.ToDocumentExportOptions(), }; return(template); }
public void TimetableDocumentTemplateModelExtensionsClass_ToDocumentTemplateMethod_ThrowsArgumentNullException_IfParameterIsNull() { TimetableDocumentTemplateModel testObject = null; _ = testObject.ToDocumentTemplate(); Assert.Fail(); }
public void TimetableDocumentTemplateModelExtensionsClass_ToDocumentTemplateMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfParameterIsNull() { TimetableDocumentTemplateModel testObject = null; try { _ = testObject.ToDocumentTemplate(); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("model", ex.ParamName); } }
/// <summary> /// Convert a <see cref="DocumentTemplate" /> instance to a <see cref="TimetableDocumentTemplateModel" /> instance. /// </summary> /// <param name="template">The object to be converted.</param> /// <returns>A <see cref="TimetableDocumentTemplateModel" /> instance containing the same data as the original object in serialisable form.</returns> /// <exception cref="NullReferenceException">Thrown if the parameter is null.</exception> public static TimetableDocumentTemplateModel ToYamlTimetableDocumentTemplateModel(this DocumentTemplate template) { if (template is null) { throw new NullReferenceException(); } TimetableDocumentTemplateModel tdtm = new TimetableDocumentTemplateModel { DefaultExportOptions = template.ExportOptions.ToYamlExportOptionsModel(), DefaultOptions = template.DocumentOptions.ToYamlDocumentOptionsModel(), }; NetworkMapModel nmm = new NetworkMapModel(); nmm.LocationList.AddRange(template.Locations.Select(c => c.ToYamlLocationModel())); nmm.Signalboxes.AddRange(template.Signalboxes.Select(b => b.ToYamlSignalboxModel())); tdtm.Maps.Add(nmm); tdtm.NoteDefinitions.AddRange(template.NoteDefinitions.Select(n => n.ToYamlNoteModel())); tdtm.TrainClasses.AddRange(template.TrainClasses.Select(c => c.ToYamlTrainClassModel())); return(tdtm); }
/// <summary> /// Convert a <see cref="DocumentTemplate"/> instance into a <see cref="TimetableDocumentTemplateModel"/> instance. /// </summary> /// <param name="template">The <see cref="DocumentTemplate"/> to be converted.</param> /// <returns>A <see cref="TimetableDocumentTemplateModel"/> instance representing the parameter.</returns> public static TimetableDocumentTemplateModel ToTimetableDocumentTemplateModel(this DocumentTemplate template) { if (template is null) { throw new ArgumentNullException(nameof(template)); } TimetableDocumentTemplateModel model = new TimetableDocumentTemplateModel { DefaultExportOptions = template.ExportOptions.ToExportOptionsModel(), DefaultOptions = template.DocumentOptions.ToDocumentOptionsModel(), }; NetworkMapModel nmm = new NetworkMapModel(); nmm.LocationList.AddRange(template.Locations.Select(c => c.ToLocationModel())); model.Maps.Add(nmm); model.NoteDefinitions.AddRange(template.NoteDefinitions.Select(n => n.ToNoteModel())); model.TrainClasses.AddRange(template.TrainClasses.Select(c => c.ToTrainClassModel())); model.Signalboxes.AddRange(template.Signalboxes.Select(s => s.ToSignalboxModel())); return(model); }
internal static DocumentTemplate LoadXmlDocumentTemplate(Stream str) { try { using (XmlReader reader = XmlReader.Create(str)) { if (reader == null) { throw new TimetableLoaderException(Resources.Error_CouldNotCreateXmlReader); } reader.MoveToContent(); if (reader.Name != "TimetableDocumentTemplate") { throw new TimetableLoaderException(Resources.Error_XmlDoesNotContainTimetableDocumentTemplate); } if (!int.TryParse(reader.GetAttribute("version"), out int version)) { throw new TimetableLoaderException(Resources.Error_XmlTimetableDocumentTemplateDoesNotSpecifyVersion); } if (version > Versions.CurrentDocumentTemplate) { throw new TimetableLoaderException(string.Format(CultureInfo.CurrentCulture, Resources.Error_XmlTimetableDocumentTemplateUnsupportedVersion, version)); } // Version-detection code to go here. XmlSerializer deserializer = new XmlSerializer(typeof(TimetableDocumentTemplateModel)); TimetableDocumentTemplateModel templateModel = (TimetableDocumentTemplateModel)deserializer.Deserialize(reader); return(templateModel.ToDocumentTemplate()); } } catch (TimetableLoaderException) { throw; } catch (Exception ex) { throw new TimetableLoaderException(Resources.Error_GenericLoaderError, ex); } }
public void TimetableDocumentTemplateModelClass_Constructor_SetsVersionPropertyTo3() { TimetableDocumentTemplateModel testOutput = new TimetableDocumentTemplateModel(); Assert.AreEqual(3, testOutput.Version.Value); }
public void TimetableDocumentTemplateModelClass_Constructor_CreatesObjectWithSignalboxesPropertyThatIsNotNull() { TimetableDocumentTemplateModel testOutput = new TimetableDocumentTemplateModel(); Assert.IsNotNull(testOutput.Signalboxes); }
public void TimetableDocumentTemplateModelClass_Constructor_CreatesObjectWithNoteDefinitionsPropertyThatIsNotNull() { TimetableDocumentTemplateModel testOutput = new TimetableDocumentTemplateModel(); Assert.IsNotNull(testOutput.NoteDefinitions); }