/// <summary> /// General method to invalidate Phylip parser /// </summary> /// <param name="nodeName">xml node name.</param> /// <param name="method">Phylip Parser method parameters</param> void InvalidatePhylipParserTestCases( string nodeName, ParserTestAttributes method) { try { string filePath = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.FilePathNode); PhylipParser parser = new PhylipParser(); switch (method) { case ParserTestAttributes.Parse: parser.Parse(filePath); break; case ParserTestAttributes.ParseOne: parser.ParseOne(filePath); break; default: break; } Assert.Fail(); } catch (InvalidDataException) { ApplicationLog.WriteLine( "Phylip Parser P2 : All the features validated successfully."); Console.WriteLine( "Phylip Parser P2 : All the features validated successfully."); } catch (FormatException) { ApplicationLog.WriteLine( "Phylip Parser P2 : All the features validated successfully."); Console.WriteLine( "Phylip Parser P2 : All the features validated successfully."); } }
/// <summary> /// Parsers the Phylip file for different test cases based /// on Additional parameter /// </summary> /// <param name="nodeName">Xml Node name</param> /// <param name="addParam">Additional parameter</param> static void ParserGeneralTestCases(string nodeName, ParserTestAttributes addParam) { // Gets the Filename string filePath = Utility._xmlUtil.GetTextValue( nodeName, Constants.FilePathNode); Assert.IsNotEmpty(filePath); ApplicationLog.WriteLine(string.Format( "Phylip Parser BVT: Reading the File from location '{0}'", filePath)); Console.WriteLine(string.Format( "Phylip Parser BVT: Reading the File from location '{0}'", filePath)); // Get the rangelist after parsing. PhylipParser parserObj = new PhylipParser(); IList <ISequenceAlignment> sequenceAlignmentList = null; ISequenceAlignment sequenceAlignment = null; // Gets the SequenceAlignment list based on the parameters. switch (addParam) { case ParserTestAttributes.Parse: sequenceAlignmentList = parserObj.Parse(filePath); break; case ParserTestAttributes.ParseOne: sequenceAlignment = parserObj.ParseOne(filePath); break; case ParserTestAttributes.ParseTextReader: sequenceAlignmentList = parserObj.Parse( new StreamReader(filePath)); break; case ParserTestAttributes.ParseOneTextReader: sequenceAlignment = parserObj.ParseOne( new StreamReader(filePath)); break; case ParserTestAttributes.ParseOneTextReaderReadOnly: sequenceAlignment = parserObj.ParseOne( new StreamReader(filePath), false); break; case ParserTestAttributes.ParseTextReaderReadOnly: sequenceAlignmentList = parserObj.Parse( new StreamReader(filePath), false); break; case ParserTestAttributes.ParseReadOnly: sequenceAlignmentList = parserObj.Parse(filePath, false); break; case ParserTestAttributes.ParseOneReadOnly: sequenceAlignment = parserObj.ParseOne(filePath, false); break; case ParserTestAttributes.ParseEncoding: PhylipParser parser = new PhylipParser(Encodings.Ncbi4NA); sequenceAlignmentList = parser.Parse( new StreamReader(filePath), false); break; default: break; } // Gets all the expected values from xml. IList <Dictionary <string, string> > expectedAlignmentList = new List <Dictionary <string, string> >(); Dictionary <string, string> expectedAlignmentObj = new Dictionary <string, string>(); XmlNode expectedAlignmentNodes = Utility._xmlUtil.GetNode( nodeName, Constants.ExpectedAlignmentNode); XmlNodeList alignNodes = expectedAlignmentNodes.ChildNodes; // Create a ISequenceAlignment List switch (addParam) { case ParserTestAttributes.ParseOne: case ParserTestAttributes.ParseOneTextReader: case ParserTestAttributes.ParseOneTextReaderReadOnly: case ParserTestAttributes.ParseOneReadOnly: sequenceAlignmentList = new List <ISequenceAlignment>(); sequenceAlignmentList.Add(sequenceAlignment); break; default: break; } foreach (XmlNode expectedAlignment in alignNodes) { expectedAlignmentObj[expectedAlignment.Name] = expectedAlignment.InnerText; } expectedAlignmentList.Add(expectedAlignmentObj); Assert.IsTrue(CompareOutput(sequenceAlignmentList, expectedAlignmentList)); ApplicationLog.WriteLine( "Phylip Parser BVT: Successfully validated all the Alignment Sequences"); Console.WriteLine( "Phylip Parser BVT: Successfully validated all the Alignment Sequences"); }
/// <summary> /// Parsers the Phylip file for different test cases based /// on Additional parameter /// </summary> /// <param name="nodeName">Xml Node name</param> /// <param name="addParam">Additional parameter</param> void ParserGeneralTestCases(string nodeName, ParserTestAttributes addParam) { // Gets the Filename string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); Assert.IsFalse(string.IsNullOrEmpty(filePath)); ApplicationLog.WriteLine(string.Format("Phylip Parser BVT: Reading the File from location '{0}'", filePath)); // Get the range list after parsing. PhylipParser parserObj = new PhylipParser(); IEnumerable<ISequenceAlignment> sequenceAlignmentList = null; ISequenceAlignment sequenceAlignment = null; // Gets the SequenceAlignment list based on the parameters. switch (addParam) { case ParserTestAttributes.Parse: sequenceAlignmentList = parserObj.Parse(filePath); break; case ParserTestAttributes.ParseOne: sequenceAlignment = parserObj.ParseOne(filePath); break; case ParserTestAttributes.ParseTextReader: using (var rdrObj = File.OpenRead(filePath)) { sequenceAlignmentList = parserObj.Parse(rdrObj).ToList(); } break; case ParserTestAttributes.ParseOneTextReader: using (var rdrObj = File.OpenRead(filePath)) { sequenceAlignment = parserObj.ParseOne(rdrObj); } break; default: break; } // Gets all the expected values from xml. var expectedAlignmentList = new List<Dictionary<string, string>>(); var expectedAlignmentObj = new Dictionary<string, string>(); XElement expectedAlignmentNodes = utilityObj.xmlUtil.GetNode(nodeName, Constants.ExpectedAlignmentNode); IList<XNode> nodes = expectedAlignmentNodes.Nodes().ToList(); //Get all the values from the elements in the node. foreach (XElement node in nodes) expectedAlignmentObj[node.Name.ToString()] = node.Value; // Create a ISequenceAlignment List switch (addParam) { case ParserTestAttributes.ParseOne: case ParserTestAttributes.ParseOneTextReader: sequenceAlignmentList = new List<ISequenceAlignment> { sequenceAlignment }; break; default: break; } expectedAlignmentList.Add(expectedAlignmentObj); Assert.IsTrue(CompareOutput(sequenceAlignmentList.ToList(), expectedAlignmentList)); ApplicationLog.WriteLine("Phylip Parser BVT: Successfully validated all the Alignment Sequences"); }
/// <summary> /// Parsers the Phylip file for different test cases based /// on Additional parameter /// </summary> /// <param name="nodeName">Xml Node name</param> /// <param name="addParam">Additional parameter</param> void ParserGeneralTestCases(string nodeName, ParserTestAttributes addParam) { // Gets the Filename string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode).TestDir(); Assert.IsFalse(string.IsNullOrEmpty(filePath)); ApplicationLog.WriteLine($"Phylip Parser BVT: Reading the File from location '{filePath}'"); // Get the range list after parsing. PhylipParser parserObj = new PhylipParser(); IEnumerable <ISequenceAlignment> sequenceAlignmentList = null; ISequenceAlignment sequenceAlignment = null; // Gets the SequenceAlignment list based on the parameters. switch (addParam) { case ParserTestAttributes.Parse: sequenceAlignmentList = parserObj.Parse(filePath); break; case ParserTestAttributes.ParseOne: sequenceAlignment = parserObj.ParseOne(filePath); break; case ParserTestAttributes.ParseTextReader: using (var rdrObj = File.OpenRead(filePath)) { sequenceAlignmentList = parserObj.Parse(rdrObj).ToList(); } break; case ParserTestAttributes.ParseOneTextReader: using (var rdrObj = File.OpenRead(filePath)) { sequenceAlignment = parserObj.ParseOne(rdrObj); } break; default: break; } // Gets all the expected values from xml. var expectedAlignmentList = new List <Dictionary <string, string> >(); var expectedAlignmentObj = new Dictionary <string, string>(); XElement expectedAlignmentNodes = utilityObj.xmlUtil.GetNode(nodeName, Constants.ExpectedAlignmentNode); IList <XNode> nodes = expectedAlignmentNodes.Nodes().ToList(); //Get all the values from the elements in the node. foreach (XElement node in nodes) { expectedAlignmentObj[node.Name.ToString()] = node.Value; } // Create a ISequenceAlignment List switch (addParam) { case ParserTestAttributes.ParseOne: case ParserTestAttributes.ParseOneTextReader: sequenceAlignmentList = new List <ISequenceAlignment> { sequenceAlignment }; break; default: break; } expectedAlignmentList.Add(expectedAlignmentObj); Assert.IsTrue(CompareOutput(sequenceAlignmentList.ToList(), expectedAlignmentList)); ApplicationLog.WriteLine("Phylip Parser BVT: Successfully validated all the Alignment Sequences"); }
/// <summary> /// General method to invalidate Phylip parser /// </summary> /// <param name="nodeName">xml node name.</param> /// <param name="method">Phylip Parser method parameters</param> void InvalidatePhylipParserTestCases( string nodeName, ParserTestAttributes method) { try { string filePath = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.FilePathNode); PhylipParser parser = new PhylipParser(); switch (method) { case ParserTestAttributes.Parse: parser.Parse(filePath).First(); break; case ParserTestAttributes.ParseOne: parser.ParseOne(filePath); break; default: break; } Assert.Fail(); } catch (InvalidDataException) { ApplicationLog.WriteLine( "Phylip Parser P2 : All the features validated successfully."); } catch (Exception) { ApplicationLog.WriteLine( "Phylip Parser P2 : All the features validated successfully."); } }