public void Exporters_DatExporter_FromOptTest() { // Arrange var mockReader = new Mock <TextReader>(); var mockWriter = new Mock <TextWriter>(); int calls = 0; mockReader .Setup(r => r.ReadLine()) .Returns(() => lfpLines[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.lfp"); TextBuilder rep = new TextBuilder( TextBuilder.TextLevel.None, TextBuilder.TextLocation.None, null, null); var builder = new LfpBuilder(); IParser parser = new LfpParser(); builder.PathPrefix = String.Empty; builder.TextBuilder = rep; // act List <string[]> records = parser.Parse(mockReader.Object); List <Document> documents = builder.Build(records); DocumentCollection docs = new DocumentCollection(documents); string[] fields = new string[] { "DocID", "Page Count", "Volume Name" }; var exporter = DatExporter.Builder .Start(mockWriter.Object, fields) .SetDelimiters(Delimiters.COMMA_DELIMITED) .Build(); exporter.Export(docs); // assert Assert.AreEqual("DocID,Page Count,Volume Name", output[0]); Assert.AreEqual("000000001,3,001", output[1]); }
public void Exporters_LfpExporter_FromLfpMultiTest() { // Arrange var mockReader = new Mock <TextReader>(); var mockWriter = new Mock <TextWriter>(); int calls = 0; mockReader .Setup(r => r.ReadLine()) .Returns(() => lfpMultiLines[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.lfp"); string vol = "TEST001"; TextBuilder rep = new TextBuilder( TextBuilder.TextLevel.None, TextBuilder.TextLocation.None, null, null); var builder = new LfpBuilder(); IParser parser = new LfpParser(); builder.PathPrefix = String.Empty; builder.TextBuilder = rep; // act List <string[]> records = parser.Parse(mockReader.Object); List <Document> documents = builder.Build(records); DocumentCollection docs = new DocumentCollection(documents); var exporter = LfpExporter.Builder .Start(mockWriter.Object) .SetVolumeName(vol) .Build(); exporter.Export(docs); // assert Assert.AreEqual("IM,000000001,D,1,@TEST001;IMG_0001;000000001.pdf;7,0", output[0]); Assert.AreEqual("IM,000000002,,2,@TEST001;IMG_0001;000000001.pdf;7,0", output[1]); Assert.AreEqual("IM,000000003,,3,@TEST001;IMG_0001;000000001.pdf;7,0", output[2]); }
public void Importers_LfpImporter_Test() { // arrange FileInfo infile = new FileInfo(@"X:\VOL001\infile.lfp"); Encoding encoding = Encoding.GetEncoding(1252); TextBuilder.TextLevel textLevel = TextBuilder.TextLevel.None; TextBuilder.TextLocation textLocation = TextBuilder.TextLocation.None; string pattern = String.Empty; Regex find = new Regex(pattern); string replace = String.Empty; TextBuilder repSetting = new TextBuilder(textLevel, textLocation, find, replace); var builder = new LfpBuilder(); builder.PathPrefix = infile.Directory.FullName; builder.TextBuilder = repSetting; var mockParser = new Mock <LfpParser>(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 LfpImporter(); importer.Parser = mockParser.Object; importer.Builder = builder; // act DocumentCollection docs = importer.Import(infile, encoding); // assert Assert.AreEqual(10, docs.Count); Assert.AreEqual(25, 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); }