protected override void Test(ArchiveExtraction archive) { var structure = SerializeUtil.DeserializeFromFile <addml>(archive.GetStructureDescriptionFileName()); foreach (var entry in structure.dataset[0].dataObjects.dataObject) { foreach (var currentObject in entry.dataObjects.dataObject) { foreach (var fileProperty in currentObject.properties.Where(s => s.name == "file")) { var filename = archive.WorkingDirectory + Path.DirectorySeparatorChar + GetFilenameFromProperty(fileProperty); var checksumAlgorithm = GetChecksumAlgorithmFromProperty(fileProperty); var checksumValue = GetChecksumValueFromProperty(fileProperty); var generatedChecksum = GenerateChecksumForFile(filename, checksumAlgorithm); var checksumsAreEqual = string.Equals(generatedChecksum, checksumValue, StringComparison.InvariantCultureIgnoreCase); var testResult = CreateTestResult(checksumsAreEqual, generatedChecksum, checksumValue, filename, checksumAlgorithm); TestResults.Add(testResult); } } } }
public void ShouldReturnContentDescriptionFileNameForNoark5() { var workingDirectory = "c:\\temp"; var archiveExtraction = new ArchiveExtraction("uuid", workingDirectory); archiveExtraction.GetContentDescriptionFileName().Should().Be($"{workingDirectory}{Path.DirectorySeparatorChar}arkivstruktur.xml"); }
public void ShouldReturnStructureDescriptionFileNameForNoark4() { var workingDirectory = "c:\\temp"; var archiveExtraction = new ArchiveExtraction("uuid", workingDirectory); archiveExtraction.ArchiveType = ArchiveType.Noark4; archiveExtraction.GetStructureDescriptionFileName().Should().Be($"{workingDirectory}{Path.DirectorySeparatorChar}addml.xml"); }
public List <BaseTest> GetTestsForArchiveExtraction(ArchiveExtraction archiveExtraction) { if (archiveExtraction.ArchiveType.Equals(ArchiveType.Noark5)) { return(new Noark5TestProvider().GetTests()); } return(new List <BaseTest>()); }
private static TestResults ValidateArchive(string workingDirectory) { var archiveExtraction = new ArchiveExtraction("uuid", workingDirectory); archiveExtraction.ArchiveType = ArchiveType.Noark5; var testResults = new ValidateXmlWithSchema().RunTest(archiveExtraction); return(testResults); }
public ArchiveExtraction ReadFromFile(string archiveFileName, string metadataFileName) { Log.Information("Reading archive from file: " + archiveFileName); Log.Information("Reading archive metadata from file: " + metadataFileName); ArchiveExtraction archiveExtraction = _archiveExtractor.Extract(archiveFileName); archiveExtraction.ArchiveType = _archiveIdentifier.Identify(metadataFileName); return(archiveExtraction); }
protected override void Test(ArchiveExtraction archive) { try { ValidateXmlDocument(archive.GetStructureDescriptionFileName(), GetPathToAddmlSchema()); TestSuccess($"Validated XML file {archive.GetStructureDescriptionFileName()} with ADDML schema."); } catch (Exception e) { TestError($"Error while validating xml [{archive.GetStructureDescriptionFileName()}] with ADDML schema: {e.Message}"); } }
protected override void Test(ArchiveExtraction archive) { using (var reader = XmlReader.Create(archive.GetContentDescriptionFileName())) { int counter = 0; while (reader.ReadToNextSibling("arkiv")) { counter++; } Console.WriteLine("Number of archives: " + counter); } }
public TestResults RunTest(ArchiveExtraction archive) { TestResults = new TestResults(this.GetType().FullName, TestType); var start = DateTime.Now; Test(archive); var stop = DateTime.Now; var duration = stop.Subtract(start).TotalMilliseconds; Console.WriteLine("Duration: " + duration); // TODO: use logging mechanism instead TestResults.TestDuration = duration; return(TestResults); }
public void ShouldValidateThatAllChecksumsAreCorrect() { string workingDirectory = $"{AppDomain.CurrentDomain.BaseDirectory}\\TestData\\Noark5\\StructureChecksums\\correct"; var archiveExtraction = new ArchiveExtraction("uuid", workingDirectory); archiveExtraction.ArchiveType = ArchiveType.Noark5; var testResults = new ValidateAddmlDataobjectsChecksums().RunTest(archiveExtraction); foreach (var testResult in testResults.Results) { _output.WriteLine(testResult.Message); } testResults.Results.Count.Should().Be(2); testResults.IsSuccess().Should().BeTrue(); }
private void btnStart_Click(object sender, RoutedEventArgs e) { txtResult.Text = "Laster inn arkiv...."; var builder = new ContainerBuilder(); builder.RegisterModule(new ArkadeAutofacModule()); var container = builder.Build(); using (container.BeginLifetimeScope()) { ArchiveExtractionReader archiveExtractionReader = container.Resolve <ArchiveExtractionReader>(); ArchiveExtraction archiveExtraction = archiveExtractionReader.ReadFromFile(txtArchiveFileName.Text, txtMetadataFileName.Text); txtResult.Text = $"Uuid: {archiveExtraction.Uuid}\n" + $"WorkingDirectory: {archiveExtraction.WorkingDirectory}\n" + $"ArchiveType: {archiveExtraction.ArchiveType}"; } }
static void Main(string[] args) { string archiveFileName = @"C:\Dropbox (Arkitektum AS)\Arkade5 - Testdata\Testdata\n5-aclie-in-wonderland-komplett.tar"; string metadataFileName = @"C:\dev\src\arkade\src\Arkivverket.Arkade.Test\TestData\noark5-info.xml"; if (args.Length != 0) { archiveFileName = args[0]; metadataFileName = args[1]; } var builder = new ContainerBuilder(); builder.RegisterModule(new ArkadeAutofacModule()); var container = builder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.ColoredConsole(outputTemplate: "{Timestamp:yyyy-MM-ddTHH:mm:ss.fff} {SourceContext} [{Level}] {Message}{NewLine}{Exception}") .CreateLogger(); using (container.BeginLifetimeScope()) { ArchiveExtractionReader archiveExtractionReader = container.Resolve <ArchiveExtractionReader>(); ArchiveExtraction archiveExtraction = archiveExtractionReader.ReadFromFile(archiveFileName, metadataFileName); Console.WriteLine($"Reading from archive: {archiveFileName}"); Console.WriteLine($"Uuid: {archiveExtraction.Uuid}"); Console.WriteLine($"WorkingDirectory: {archiveExtraction.WorkingDirectory}"); Console.WriteLine($"ArchiveType: {archiveExtraction.ArchiveType}"); List <TestResults> testResults = new TestEngine().RunTestsOnArchive(archiveExtraction); foreach (TestResults results in testResults) { Console.WriteLine($"Test: {results.TestName}, duration={results.TestDuration}, success={results.IsSuccess()}"); } } }
protected override void Test(ArchiveExtraction archive) { new Common.CheckWellFormedXml().Test(archive.GetStructureDescriptionFileName()); }
protected abstract void Test(ArchiveExtraction archive);