public void TestMBFTextReaderCoreFunctionality() { using (MBFTextReader mbfReader = new MBFTextReader(testFileFullName)) { // Test line access members. Assert.IsTrue(mbfReader.HasLines); Assert.AreEqual("LOCUS SCU49845 5028 bp DNA PLN 21-JUN-1999", mbfReader.Line); Assert.IsTrue(mbfReader.LineHasHeader); Assert.AreEqual("LOCUS", mbfReader.LineHeader); Assert.IsTrue(mbfReader.LineHasData); Assert.AreEqual("SCU49845 5028 bp DNA PLN 21-JUN-1999", mbfReader.LineData); Assert.AreEqual("NA ", mbfReader.GetLineField(38, 41)); // Test reading lines and line number tracking. for (int i = 1; i < 6; i++) { mbfReader.GoToNextLine(); } Assert.AreEqual(7, mbfReader.LineNumber); Assert.AreEqual("KEYWORDS", mbfReader.LineHeader); // Test switching line indent. mbfReader.DataIndent = 2; Assert.AreEqual("KE", mbfReader.LineHeader); Assert.AreEqual("YWORDS .", mbfReader.LineData); // Test recognition of blank header and data. for (int i = 6; i < 8; i++) { mbfReader.GoToNextLine(); } Assert.IsFalse(mbfReader.LineHasHeader); // line starts with 2 spaces Assert.IsTrue(mbfReader.LineHasData); mbfReader.DataIndent = 37; // the line length Assert.IsTrue(mbfReader.LineHasHeader); Assert.IsFalse(mbfReader.LineHasData); mbfReader.DataIndent = 12; // back to standard line length // Test skipping sections and EOF recognition. mbfReader.SkipToNextSection(); // ref 1 mbfReader.SkipToNextSection(); // ref 2 mbfReader.SkipToNextSection(); // features mbfReader.SkipToNextSection(); // origin mbfReader.SkipToNextSection(); // "//" Assert.IsTrue(mbfReader.HasLines); mbfReader.GoToNextLine(); // EOF Assert.IsTrue(mbfReader.HasLines); } }
public void ValidateMBFTextReaderConstructor() { string FilePath = _utilityObj._xmlUtil.GetTextValue( Constants.MBFTextReaderValidationNode, Constants.FilePathNode); string expectedLine = _utilityObj._xmlUtil.GetTextValue( Constants.MBFTextReaderValidationNode, Constants.ExpectedLineNode); string expectedHeader = _utilityObj._xmlUtil.GetTextValue( Constants.MBFTextReaderValidationNode, Constants.ExpectedHeaderNode); // MBFTextReader(string). using (MBFTextReader mbfReader = new MBFTextReader(FilePath)) { Assert.AreEqual(expectedHeader, mbfReader.ReadBlock(0, 0, 32, 5)); Assert.AreEqual(FilePath, mbfReader.FileName); Assert.AreEqual(expectedLine, mbfReader.Line); } // MBFTextReader(Stream). using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read)) { MBFTextReader mbfReader = new MBFTextReader(stream); Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); } // MBFTextReader(TextReader). using (StreamReader reader = new StreamReader(FilePath)) { MBFTextReader mbfReader = new MBFTextReader(reader); // Start reading from begining Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); // skip line. mbfReader.SkipToNextSection(); Assert.IsNotNull(mbfReader.Line); } // Data indent specifies the number of chars that are considered the line header. int dataIndent = 2; expectedHeader = expectedHeader.Substring(0, 2); // MBFTextReader(string,DataIndent). using (MBFTextReader mbfReader = new MBFTextReader(FilePath, dataIndent)) { Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.AreEqual(FilePath, mbfReader.FileName); } // MBFTextReader(string,DataIndent,bool skipLines). using (MBFTextReader mbfReader = new MBFTextReader(FilePath, dataIndent, false)) { Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.AreEqual(FilePath, mbfReader.FileName); } // MBFTextReader(Stream, int) . using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read)) { MBFTextReader mbfReader = new MBFTextReader(stream, dataIndent); Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); } // MBFTextReader(Stream, int, bool) . using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read)) { MBFTextReader mbfReader = new MBFTextReader(stream, dataIndent, true); Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); } // MBFTextReader(TextReader). using (StreamReader reader = new StreamReader(FilePath)) { MBFTextReader mbfReader = new MBFTextReader(reader, dataIndent); Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); } // MBFTextReader(TextReader,skipLines). using (StreamReader reader = new StreamReader(FilePath)) { MBFTextReader mbfReader = new MBFTextReader(reader, dataIndent, true); Assert.AreEqual(expectedHeader, mbfReader.LineHeader); Assert.IsNull(mbfReader.FileName); } }