Example #1
0
        public void Builders_DatBuilder_BuildDocument_Reps()
        {
            // test with an empty path prefix
            RepresentativeBuilder rep = new RepresentativeBuilder(
                "NATIVE", Representative.FileType.Native);

            builder.RepresentativeBuilders = new List <RepresentativeBuilder>()
            {
                rep
            };
            builder.SetHeader(records[0]);
            Document doc = builder.BuildDocument(records[1]);

            Assert.AreEqual(Representative.FileType.Native, doc.Representatives.First().Type);
            Assert.AreEqual(records[1][0], doc.Representatives.First().Files.First().Key);
            string expected = "X:\\VOL001\\NATIVE\\0001\\DOC000001.XLSX";

            Assert.AreEqual(expected, doc.Representatives.First().Files.First().Value);

            // test with a populated path prefix
            string[] newRecord = new string[records[1].Length];
            records[1].CopyTo(newRecord, 0);
            newRecord[5] = "\\VOL001\\NATIVE\\0001\\DOC000001.XLSX";
            builder.RepresentativeBuilders = new RepresentativeBuilder[] { rep };
            builder.KeyColumnName          = "DOCID";
            builder.PathPrefix             = "Z:\\";
            doc = builder.BuildDocument(newRecord);
            Assert.AreEqual(Representative.FileType.Native, doc.Representatives.First().Type);
            Assert.AreEqual(records[1][0], doc.Representatives.First().Files.First().Key);
            expected = "Z:\\VOL001\\NATIVE\\0001\\DOC000001.XLSX";
            Assert.AreEqual(expected, doc.Representatives.First().Files.First().Value);
        }
        public void Exporters_DatExporter_FromCsvTest()
        {
            // Arrange
            var mockReader = new Mock <TextReader>();
            var mockWriter = new Mock <TextWriter>();
            int calls      = 0;

            mockReader
            .Setup(r => r.ReadLine())
            .Returns(() => datLines[calls])
            .Callback(() => calls++);
            List <string> output = new List <string>();

            mockWriter
            .Setup(r => r.WriteLine(It.IsAny <string>()))
            .Callback((string s) => output.Add(s));
            FileInfo infile        = new FileInfo(@"X:\VOL001\infile.dat");
            bool     hasHeader     = true;
            string   keyColName    = "DOCID";
            string   parentColName = "BEGATT";
            string   childColName  = String.Empty;
            string   childColDelim = ";";
            RepresentativeBuilder        repSetting = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps       = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var     builder = new DatBuilder();
            IParser parser  = new DatParser(Delimiters.CONCORDANCE);

            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.PathPrefix             = infile.Directory.FullName;
            builder.HasHeader        = hasHeader;
            builder.ParentColumnName = parentColName;
            builder.KeyColumnName    = keyColName;

            // act
            List <string[]>    records   = parser.Parse(mockReader.Object);
            List <Document>    documents = builder.Build(records);
            DocumentCollection docs      = new DocumentCollection(documents);

            string[] fields   = new string[] { "DOCID", "BEGATT", "VOLUME", "NATIVE" };
            var      exporter = DatExporter.Builder
                                .Start(mockWriter.Object, fields)
                                .SetDelimiters(Delimiters.PIPE_CARET)
                                .Build();

            exporter.Export(docs);

            // assert
            Assert.AreEqual("^DOCID^|^BEGATT^|^VOLUME^|^NATIVE^", output[0]);
            Assert.AreEqual("^DOC000001^|^DOC000001^|^VOL001^|^X:\\VOL001\\NATIVE\\0001\\DOC000001.XLSX^", output[1]);
            Assert.AreEqual("^DOC000002^|^DOC000001^|^VOL001^|^^", output[2]);
        }
        public DocumentCollection GetDocs()
        {
            var datLines = new List <string>(new string[] {
                "þDOCIDþþBEGATTþþVOLUMEþþDOCTYPEþþNATIVEþ",
                "þDOC000001þþDOC000001þþVOL001þþEMAILþþX:\\VOL001\\NATIVE\\0001\\DOC000001.XLSXþ",
                "þDOC000002þþDOC000001þþVOL001þþPDFþþþ",
                null, null
            });

            var optLines = new List <string[]> {
                new string[] { "DOC000001", "VOL001", "X:\\VOL001\\IMAGES\\0001\\DOC000001.jpg", "Y", "", "", "1" },
                new string[] { "DOC000002", "VOL001", "X:\\VOL001\\IMAGES\\0001\\DOC000002.tif", "Y", "", "", "2" },
                new string[] { "DOC000003", "VOL001", "X:\\VOL001\\IMAGES\\0001\\DOC000003.tif", "", "", "", "" }
            };

            var mockReader = new Mock <TextReader>();
            int calls      = 0;

            mockReader
            .Setup(r => r.ReadLine())
            .Returns(() => datLines[calls])
            .Callback(() => calls++);
            FileInfo infile        = new FileInfo(@"X:\VOL001\infile.dat");
            bool     hasHeader     = true;
            string   keyColName    = "DOCID";
            string   parentColName = "BEGATT";
            string   childColName  = String.Empty;
            string   childColDelim = ";";
            RepresentativeBuilder        repSetting = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps       = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var             builder = new DatBuilder();
            IParser         parser  = new DatParser(Delimiters.CONCORDANCE);
            List <string[]> records = parser.Parse(mockReader.Object);

            builder.HasHeader              = hasHeader;
            builder.KeyColumnName          = keyColName;
            builder.ParentColumnName       = parentColName;
            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.ParentColumnName       = infile.Directory.FullName;
            List <Document> documents  = builder.Build(records);
            var             docs       = new DocumentCollection(documents);
            var             optBuilder = new OptBuilder();

            optBuilder.PathPrefix  = String.Empty;
            optBuilder.TextBuilder = null;
            List <Document> optDocs = optBuilder.Build(optLines);

            docs.AddRange(optDocs);
            docs[1].SetParent(docs[0]);
            return(docs);
        }
        public void Exporters_OptExporter_FromCsvTest()
        {
            // Arrange
            var mockReader = new Mock <TextReader>();
            var mockWriter = new Mock <TextWriter>();
            int calls      = 0;

            mockReader
            .Setup(r => r.ReadLine())
            .Returns(() => datLines[calls])
            .Callback(() => calls++);
            List <string> output = new List <string>();

            mockWriter
            .Setup(r => r.WriteLine(It.IsAny <string>()))
            .Callback((string s) => output.Add(s));
            FileInfo infile        = new FileInfo(@"X:\VOL001\infile.dat");
            bool     hasHeader     = true;
            string   keyColName    = "DOCID";
            string   parentColName = "BEGATT";
            string   childColName  = String.Empty;
            string   childColDelim = ";";
            string   vol           = "TEST001";
            RepresentativeBuilder        repSetting = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps       = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var     builder = new DatBuilder();
            IParser parser  = new DatParser(Delimiters.CONCORDANCE);

            builder.HasHeader              = hasHeader;
            builder.KeyColumnName          = keyColName;
            builder.ParentColumnName       = parentColName;
            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.PathPrefix             = infile.Directory.FullName;

            // act
            List <string[]>    records   = parser.Parse(mockReader.Object);
            List <Document>    documents = builder.Build(records);
            DocumentCollection docs      = new DocumentCollection(documents);
            var exporter = OptExporter.Builder.Start(mockWriter.Object).SetVolumeName(vol).Build();

            exporter.Export(docs);

            // assert
            Assert.IsTrue(output.Count == 0);
        }
Example #5
0
        public void Importers_DatImporter_Test()
        {
            // arrange
            FileInfo                     infile        = new FileInfo(@"X:\VOL001\infile.lfp");
            Encoding                     encoding      = Encoding.GetEncoding(1252);
            Delimiters                   delimiters    = Delimiters.CONCORDANCE;
            bool                         hasHeader     = true;
            string                       keyColName    = "DOCID";
            string                       parentColName = "BEGATT";
            string                       childColName  = String.Empty;
            string                       childColDelim = ";";
            RepresentativeBuilder        repSetting    = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps          = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var builder = new DatBuilder();

            builder.HasHeader              = hasHeader;
            builder.KeyColumnName          = keyColName;
            builder.ParentColumnName       = parentColName;
            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.PathPrefix             = infile.Directory.FullName;
            var mockParser = new Mock <DatParser>(MockBehavior.Strict);

            mockParser.Setup(p => p.Parse(It.IsAny <TextReader>())).Returns(records);
            mockParser.Setup(p => p.Parse(It.IsAny <FileInfo>(), It.IsAny <Encoding>())).Returns(records);
            importer         = new DatImporter(mockParser.Object);
            importer.Builder = builder;

            // act
            DocumentCollection docs = importer.Import(infile, encoding);


            // assert
            Assert.AreEqual(10, docs.Count);
            Assert.AreEqual(0, docs.ImageCount);
            Assert.AreEqual(0, docs.TextCount);
            Assert.AreEqual(1, docs.NativeCount);
            Assert.AreEqual(3, docs.ParentCount);
            Assert.AreEqual(5, docs.ChildCount);
            Assert.AreEqual(2, docs.StandAloneCount);
            Assert.AreEqual("DOC000001", docs[0].Metadata["DOCID"]);
        }
        public void TestSetup()
        {
            datLines = new List <string>(new string[] {
                "þDOCIDþþBEGATTþþVOLUMEþþNATIVEþ",
                "þDOC000001þþDOC000001þþVOL001þþX:\\VOL001\\NATIVE\\0001\\DOC000001.XLSXþ",
                "þDOC000002þþDOC000001þþVOL001þþþ",
                null, null
            });
            var mockReader = new Mock <TextReader>();
            int calls      = 0;

            mockReader
            .Setup(r => r.ReadLine())
            .Returns(() => datLines[calls])
            .Callback(() => calls++);
            FileInfo infile        = new FileInfo(@"X:\VOL001\infile.dat");
            bool     hasHeader     = true;
            string   keyColName    = "DOCID";
            string   parentColName = "BEGATT";
            string   childColName  = String.Empty;
            string   childColDelim = ";";
            RepresentativeBuilder        repSetting = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps       = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var             builder = new DatBuilder();
            IParser         parser  = new DatParser(Delimiters.CONCORDANCE);
            List <string[]> records = parser.Parse(mockReader.Object);

            builder.HasHeader              = hasHeader;
            builder.KeyColumnName          = keyColName;
            builder.ParentColumnName       = parentColName;
            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.ParentColumnName       = infile.Directory.FullName;
            List <Document> documents = builder.Build(records);

            docs = new DocumentCollection(documents);
        }
 /// <summary>
 /// Initializes a new instance of <see cref="RepresentativeInfo"/>.
 /// </summary>
 /// <param name="setting">The settings used to build this object.</param>
 public RepresentativeInfo(RepresentativeBuilder setting)
 {
     this.ColumnName = setting.ColumnName;
     this.FileType   = setting.Type;
 }