Ejemplo n.º 1
0
        /// <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.");
            }
        }
Ejemplo n.º 2
0
        /// <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");
        }
Ejemplo n.º 3
0
        /// <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");
        }
Ejemplo n.º 4
0
        /// <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");
        }
Ejemplo n.º 5
0
        /// <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.");
            }
        }