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); }
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; }