private static void Main(string[] args) { var packagesRepository = new PackageRepository(); Parser.Default .ParseArguments <Options>(args) .WithParsed(o => { foreach (var package in FilesScanner.GetAllPackages(new [] { o.RepositoryPath }, false)) { packagesRepository.AddPackage(package); } var localPackages = FilesScanner.GetAllPackages(new [] { o.Path }, true); var structureValidator = new StructureValidator(); var validationErrors = structureValidator.ValidateStructure(localPackages); foreach (var validationError in structureValidator.ValidateStructure(localPackages)) { Console.WriteLine(validationError); } if (validationErrors.Any()) { return; } HandleVersionSynchronization(localPackages); HandleCycles(FilesScanner.GetAllPackages(new [] { o.Path }, true), packagesRepository, o.Target); localPackages = FilesScanner.GetAllPackages(new [] { o.Path }, true); var resolvedPackages = ResolvePackages(PackageRepository.Create(localPackages), packagesRepository, o.Target); Run(resolvedPackages); }); }
public static void Main(string[] args) { Console.Write("Путь до файла валидации (XSD, DTD): "); var validationFilePath = Console.ReadLine(); var validatorType = GetValidator(); var program = new Program(validatorType); if (validatorType is XsdValidator) { var structureValidator = new StructureValidator(); structureValidator.OnError += wrongElement => { Console.WriteLine("Ошибка структуры XSD"); Console.WriteLine(wrongElement); }; var structureValidatorResult = structureValidator.Validate(validationFilePath); if (!structureValidatorResult) { Console.WriteLine("Неправильная вложенность елементов"); Console.ReadKey(); } } Console.Write("Путь до XML файла: "); var xmlPath = Console.ReadLine(); program.Validator.OnValidationError += error => { Console.WriteLine("Ошибка валидации XML"); Console.WriteLine(error); }; var result = false; try { program.Validator.Load(validationFilePath); result = program.Validator.Validate(xmlPath); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(result ? "Валидация успешна" : "Валидация завершилась с ошибками"); Console.ReadKey(); }
public void Validate_WhenMultipleMinorLocalVersions_ShouldReturnError() { var structureValidator = new StructureValidator(); var v1 = new Version(1, 0, 1); var v2 = new Version(1, 0, 2); var actual = structureValidator.ValidateStructure( new[] { new PackageMeta("", true, new PackageInfo { Name = "A", Version = v1 }), new PackageMeta("", true, new PackageInfo { Name = "A", Version = v2 }) }); Assert.That(actual, Has.Length.EqualTo(1)); Assert.That(actual, Has.Some.Matches <StructureValidator.ValidationError>( x => x.Description.Contains(v1.ToString()) && x.Description.Contains(v2.ToString()))); }