public static async Task ShouldDetectNonCompliantPdfA() { using var pdfAValidator = new PdfAValidator(); Assert.True(File.Exists("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf")); var result = await pdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf"); Assert.False(result); }
public static async Task ShouldDetectBrokenPdfAsNonCompliant() { using var pdfAValidator = new PdfAValidator(); Assert.True(File.Exists("./TestPdfFiles/NoPdf.pdf")); var result = await pdfAValidator.ValidateAsync("./TestPdfFiles/NoPdf.pdf"); Assert.False(result); }
public static async Task ShouldNotFailOnMultipleDisposeCalls() { var postscriptValidator = new PdfAValidator(); _ = await postscriptValidator.ValidateAsync("./TestPdfFiles/FromLibreOffice.pdf"); postscriptValidator.Dispose(); #pragma warning disable S3966 // Expecting multiple dispose calls to pass postscriptValidator.Dispose(); #pragma warning restore S3966 // Expecting multiple dispose calls to pass }
public static async Task ShouldUnpackNewDirectoryInTempdirectory() { string?veraPdfStartScript; using (var pdfAValidator = new PdfAValidator()) { await pdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOffice.pdf"); veraPdfStartScript = pdfAValidator.VeraPdfStartScript; AssertVeraPdfBinCreation(pdfAValidator.VeraPdfStartScript); } Assert.False(File.Exists(veraPdfStartScript)); }
public static async Task ShouldFailGracefullWithExitcode2() { var somethingThatReturnsExitcode2 = "./TestExecuteables/exitcode2.bat"; if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { somethingThatReturnsExitcode2 = "./TestExecuteables/exitcode2.sh"; } var veraPdfException = await Assert.ThrowsAsync <VeraPdfException>(async() => { // Using default ctor to get Java bins for the test using var pdfAValidator = new PdfAValidator(somethingThatReturnsExitcode2, "SomeValue"); await pdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOffice.pdf"); }); Assert.Equal($"Calling VeraPdf exited with 2 caused an error: \nCustom JAVACMD: SomeValue\nVeraPdfStartScript: {somethingThatReturnsExitcode2}", veraPdfException.Message); }
public static async Task ShouldFailGracefullWithUnrecognicedVeraPdfOutput() { var somethingThatReturnsExitcode0 = "./TestExecuteables/exitcode0.bat"; if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { somethingThatReturnsExitcode0 = "./TestExecuteables/exitcode0.sh"; } var veraPdfException = await Assert.ThrowsAsync <VeraPdfException>(async() => { using var pdfAValidator = new PdfAValidator(somethingThatReturnsExitcode0, "SomeValue"); await pdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf"); }); Assert.StartsWith($"Failed to parse VeraPdf Output: This is not XML", veraPdfException.Message); Assert.Contains($"Custom JAVACMD: SomeValue\nveraPdfStartScriptPath: {somethingThatReturnsExitcode0}", veraPdfException.Message); }
public static async Task ShouldWorkWithCustomJavaAndVeraPdfLocation() { string?veraPdfStartScript; // Using default ctor to get verapdf and Java bins for the test using (var pdfAValidatorPrepareBins = new PdfAValidator()) { await pdfAValidatorPrepareBins.ValidateAsync("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf"); using (var pdfAValidator = new PdfAValidator(pdfAValidatorPrepareBins.VeraPdfStartScript !, pdfAValidatorPrepareBins.PathJava !)) { veraPdfStartScript = pdfAValidator.VeraPdfStartScript; AssertVeraPdfBinCreation(veraPdfStartScript); Assert.True(File.Exists("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf")); var result = await pdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOfficeNonPdfA.pdf"); Assert.False(result); } Assert.True(File.Exists(veraPdfStartScript)); } Assert.False(File.Exists(veraPdfStartScript)); }