public void Generate_PADModel_ThrowValidationException() { //arrange PADRoot root = new PADRoot(); root.ProgramDescriptions.Add("English", new ProgramDescription()); root.CompanyInfo.City = "San Francisco"; root.CompanyInfo.Country = "USA"; root.CompanyInfo.WebSiteUrl = "http://www.talex-soft.com"; root.CompanyInfo.ContactInfo.AuthorFirstName = "Firstname"; root.CompanyInfo.ContactInfo.AuthorLastName = "Lastname"; root.CompanyInfo.ContactInfo.ContactFirstName = "Firstname"; root.CompanyInfo.ContactInfo.ContactLastName = "Lastname"; root.ProgramInfo.ProgramName = "Cool Program"; root.ProgramInfo.Version = "2.0"; root.ProgramInfo.SetReleaseDate(new DateTime(2013, 1, 3)); root.ProgramInfo.Category = "Desktop::Screen Savers: Science"; root.ProgramInfo.FileInfo.SetFileSize(3645785); //action Action action = () => { Target.Generate(root, _outputStream); }; // assert action.Should().Throw <ValidationException>() .WithMessage("The field Name must be a string with a minimum length of 2 and a maximum length of 40."); }
public void Generate_PADModel_SuccessResult() { //arrange PADRoot root = new PADRoot(); root.ProgramDescriptions.Add("English", new ProgramDescription()); root.CompanyInfo.Name = "T-Alex Software"; root.CompanyInfo.City = "San Francisco"; root.CompanyInfo.Country = "USA"; root.CompanyInfo.WebSiteUrl = "http://www.talex-soft.com"; root.CompanyInfo.ContactInfo.AuthorFirstName = "Firstname"; root.CompanyInfo.ContactInfo.AuthorLastName = "Lastname"; root.CompanyInfo.ContactInfo.ContactFirstName = "Firstname"; root.CompanyInfo.ContactInfo.ContactLastName = "Lastname"; root.ProgramInfo.ProgramName = "Cool Program"; root.ProgramInfo.Version = "2.0"; root.ProgramInfo.SetReleaseDate(new DateTime(2013, 1, 3)); root.ProgramInfo.Category = "Desktop::Screen Savers: Science"; root.ProgramInfo.FileInfo.SetFileSize(3645785); root.WebInfo.ApplicationURLs.ScreenshotUrl = "https://some-domain.com/some-image.here.png"; //action Target.Generate(root, _outputStream); _outputStream.Seek(0, SeekOrigin.Begin); string text = _outputStreamReader.ReadToEnd(); // assert text.Should().NotBeEmpty(); }
/// <summary> /// Determines whether the specified PAD file model is valid. /// </summary> /// <param name="root">The object to validate.</param> /// <exception cref="System.ComponentModel.DataAnnotations.ValidationException"> /// The object is not valid. /// </exception> /// <exception cref="System.ArgumentNullException"> /// root is null. /// </exception> public void Validate(PADRoot root) { List <ValidationResult> results = new List <ValidationResult>(); if (!TryValidate(root, results)) { ValidationResult result = results.First(); throw new ValidationException(result, null, null); } }
/// <summary> /// Generates xml PAD file and puts to output stream. /// </summary> /// <param name="root">A root elemnt model for PAD file.</param> /// <param name="output">An output stream for writing generated PAD file.</param> public void Generate(PADRoot root, Stream output) { Validate(root); XmlSerializer serializer = new XmlSerializer(typeof(PADRoot)); XmlWriter writer = XmlWriter.Create(output, _xmlSettings); serializer.Serialize(writer, root, _namespaces); }
/// <summary> /// Determines whether the specified PAD file model is valid using the validation results collection. /// </summary> /// <param name="root">The object to validate.</param> /// <param name="results">A collection to hold each failed validation.</param> /// <returns>true if the object validates; otherwise, false.</returns> /// <exception cref="System.ArgumentNullException"> /// root is null. /// </exception> public bool TryValidate(PADRoot root, List <ValidationResult> results) { return(DataAnnotationsValidator.TryValidateObjectRecursive(root, results)); }