internal static void Test()
        {
            const string outputFolderName = "MergeOps";
            var          outputFolder     = StandardLibraryMethods.CombinePaths(TestStatics.OutputFolderPath, outputFolderName);

            IoMethods.DeleteFolder(outputFolder);
            Directory.CreateDirectory(outputFolder);

            var inputTestFiles = StandardLibraryMethods.CombinePaths(TestStatics.InputTestFilesFolderPath, outputFolderName);
            var wordDocx       = StandardLibraryMethods.CombinePaths(inputTestFiles, "word.docx");
            var pdf            = StandardLibraryMethods.CombinePaths(inputTestFiles, "pdf.pdf");

            MergeStatics.Init();
            var singleTestRow      = new PseudoTableRow(1).ToSingleElementArray();
            var testRows           = new[] { new PseudoTableRow(1), new PseudoTableRow(2), new PseudoTableRow(3) };
            var singleRowTree      = MergeStatics.CreatePseudoTableRowTree(singleTestRow);
            var pseudoTableRowTree = MergeStatics.CreatePseudoTableRowTree(testRows);

            var explanations = new List <Tuple <String, String> >();

            // Single row to merge against

            // Word files

            const string singleRowWordDoc = "SingleRowMsWordDoc" + FileExtensions.WordDocx;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, singleRowWordDoc))) {
                using (var word = File.OpenRead(wordDocx))
                    CreateMsWordDoc(singleRowTree, false, word, outputFile);
                explanations.Add(Tuple.Create(singleRowWordDoc, "Should be {0} with only one page, and FullName merged in the upper left.".FormatWith(wordDocx)));
            }

            const string singleRowWordDocAsPdf = "SingleRowMsWordDoc" + FileExtensions.Pdf;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, singleRowWordDocAsPdf)))
                CreatePdfFromMsWordDoc(singleRowTree, false, wordDocx, outputFile);
            explanations.Add(
                Tuple.Create(singleRowWordDocAsPdf, "Should be {0} with only one page, FullName merged in the upper left, saved as a PDF.".FormatWith(wordDocx)));

            //Excel
            const string singleRowExcel = "SingleRowExcel" + FileExtensions.ExcelXlsx;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, singleRowExcel)))
                CreateExcelWorkbook(singleRowTree, GetExcelSupportedMergeFields(singleRowTree), outputFile);
            explanations.Add(
                Tuple.Create(
                    singleRowExcel,
                    "An Excel file with the first row frozen and bold with the merge field names. Note that only supported field types may be dispalyed. One more row with data should be present."));

            // Pdf
            const string singleRowPdf = "SingleRowPdf" + FileExtensions.Pdf;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, singleRowPdf)))
                CreatePdf(singleRowTree, false, pdf, outputFile);
            explanations.Add(Tuple.Create(singleRowPdf, "Should be {0} with only one page, FullName filled in and 'Test' displayed.".FormatWith(pdf)));

            // Multiple rows to merge against

            // Word files
            const string multipleRowsWordDoc = "MultipleRowMsWordDoc" + FileExtensions.WordDocx;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, multipleRowsWordDoc))) {
                using (var word = File.OpenRead(wordDocx))
                    CreateMsWordDoc(pseudoTableRowTree, false, word, outputFile);
                explanations.Add(Tuple.Create(multipleRowsWordDoc, "Should be {0} with three pages, and FullName merged in the upper left.".FormatWith(wordDocx)));
            }

            const string multipleRowsWordDocAsPdf = "MultipleRowMsWordDoc" + FileExtensions.Pdf;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, multipleRowsWordDocAsPdf)))
                CreatePdfFromMsWordDoc(pseudoTableRowTree, false, wordDocx, outputFile);
            explanations.Add(
                Tuple.Create(multipleRowsWordDocAsPdf, "Should be {0} with three pages, FullName merged in the upper left, saved as a PDF.".FormatWith(wordDocx)));

            // Excel
            const string multipleRowExcel = "MultipleRowExcel" + FileExtensions.ExcelXlsx;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, multipleRowExcel)))
                CreateExcelWorkbook(pseudoTableRowTree, GetExcelSupportedMergeFields(pseudoTableRowTree), outputFile);
            explanations.Add(
                Tuple.Create(
                    multipleRowExcel,
                    "An Excel file with the first row frozen and bold with the merge field names. Note that only supported field types may be dispalyed. Three more row with data should be present."));

            // Pdf
            const string multipleRowPdf = "MultipleRowPdf" + FileExtensions.Pdf;

            using (var outputFile = File.OpenWrite(StandardLibraryMethods.CombinePaths(outputFolder, multipleRowPdf)))
                CreatePdf(pseudoTableRowTree, false, pdf, outputFile);
            explanations.Add(Tuple.Create(multipleRowPdf, "Should be {0} with three pages, FullName filled in and 'Test' displayed.".FormatWith(pdf)));

            TestStatics.OutputReadme(outputFolder, explanations);
        }
Beispiel #2
0
 void SystemInitializer.InitStatics()
 {
     GlobalStatics.Init();
     MergeStatics.Init();
 }