Пример #1
0
        internal string ProduceJSONtext4Comparison(PDFDocumentMuPDFMetaInfo info)
        {
            string raw_text = info.raw_multipurp_text;

            info.raw_decoded_json   = null;
            info.raw_multipurp_text = null;

            PDFDocumentMuPDFMetaInfoEx4Test data = new PDFDocumentMuPDFMetaInfoEx4Test();

            data.info = info;
            string json_text;

            try
            {
                data.complete_json_doc = JsonConvert.DeserializeObject(raw_text);
                json_text = JsonConvert.SerializeObject(data, Formatting.Indented).Replace("\r\n", "\n");
            }
            catch (Exception ex)
            {
                json_text = @"{
                    Exception: {
                      Message: '{0}',
                      Stack: '{1}'
                    }, RAW:
                      {2}
                }";
                json_text = String.Format(json_text.Replace("'", "\""), ex.Message, ex.StackTrace, raw_text).Replace("\r\n", "\n");
            }

            return(json_text);
        }
Пример #2
0
        public void TestGetDocumentMetaInfo_on_doc1()
        {
            string pdf_filename = MiscTestHelpers.GetNormalizedPathToAnyTestDataTestFile(@"fixtures/1.Doc-Many.Metadata.Formats/0001-LDA-paper/2004.04.PNAS.ef997ae1b01762b57b75d8c22fb8cec87406.pdf");

            ASSERT.FileExists(pdf_filename);
            PDFDocumentMuPDFMetaInfo info = MuPDFRenderer.GetDocumentMetaInfo(pdf_filename, null, ProcessPriorityClass.Normal);

            ASSERT.AreEqual <int>(8, info.PageCount);
            ASSERT.AreEqual <bool>(false, info.DocumentIsCorrupted);
            ASSERT.IsLessOrEqual(10000, info.raw_multipurp_text.Length);
            TestJSONoutputIsCorrectForPDFdoc1(info.raw_decoded_json);

            object json_doc  = JsonConvert.DeserializeObject(info.raw_multipurp_text);
            string json_text = JsonConvert.SerializeObject(json_doc, Formatting.Indented).Replace("\r\n", "\n");

            // Perform comparison via ApprovalTests->BeyondCompare (that's what I use for *decades* now)
            //ApprovalTests.Approvals.VerifyJson(json_out);   --> becomes the code below:
            ApprovalTests.Approvals.Verify(
                new QiqqaApprover(json_text, pdf_filename),
                ApprovalTests.Approvals.GetReporter()
                );

            info.ClearRawContent();
            ASSERT.IsNull(info.raw_multipurp_text);
            ASSERT.IsNull(info.raw_decoded_json);
        }
Пример #3
0
        public void Test_PDF_metadata_extraction_via_multipurp_chunk0070_qpdf(string filepath)
        {
            string pdf_filename = MiscTestHelpers.GetNormalizedPathToAnyTestDataTestFile($"fixtures/PDF/{ filepath.Replace("./", "") }");

            ASSERT.FileExists(pdf_filename);
            PDFDocumentMuPDFMetaInfo info = MuPDFRenderer.GetDocumentMetaInfo(pdf_filename, null, ProcessPriorityClass.Normal);

            string json_text = ProduceJSONtext4Comparison(info);

            // Perform comparison via ApprovalTests->BeyondCompare (that's what I use for *decades* now)
            //ApprovalTests.Approvals.VerifyJson(json_out);   --> becomes the code below:
            ApprovalTests.Approvals.Verify(
                new QiqqaApprover(json_text, pdf_filename),
                ApprovalTests.Approvals.GetReporter()
                );
        }