Пример #1
0
        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);
        }
Пример #2
0
        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
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
        }