Ejemplo n.º 1
0
        // Helper method to autogenerate Exslt xunit test data from XsltScenarios.xml
        public void AutoGenerateXunitTestData()
        {
            StreamWriter sw = new StreamWriter(new FileStream("XunitTestList.txt", FileMode.Create, FileAccess.Write));

            //Load the control file
            XmlDocument doc = new XmlDocument {
                XmlResolver = new XmlUrlResolver()
            };

            doc.Load("XsltScenarios.xml");

            XmlNodeList TestCases = doc.DocumentElement.SelectNodes("//Variation");

            foreach (XmlNode Variation in TestCases)
            {
                foreach (string ver in new string[] { "v1", "v2" })
                {
                    string variationDesc = Variation.Attributes.GetNamedItem("Desc").Value;
                    int    variationId   = Convert.ToInt32(Variation.Attributes.GetNamedItem("Id").Value);

                    sw.WriteLine("//[Variation(id = " + variationId.ToString() + ", Desc = \"" + variationDesc + ")]");

                    _xmlFile = Variation.SelectSingleNode("Data/Xml").InnerText;
                    _xslFile = Variation.SelectSingleNode("Data/Xsl").InnerText;

                    string ResultType = Variation.SelectSingleNode("Data/Result[1]/@Type").Value;
                    ResultType = ResultType.ToLower();

                    if (ResultType == "valid")
                    {
                        _baseline = Variation.SelectSingleNode("Data/Result").InnerText;
                        try
                        {
                            _baseline = Variation.SelectSingleNode("Data/Result[@TransformType='" + ver + "']").InnerText;;
                        }
                        catch (NullReferenceException)
                        {
                        }
                    }
                    sw.WriteLine("[InlineData(" + "\"" + _xmlFile + "\", " + "\"" + _xslFile + "\", " + "\"" + ResultType + "\", " + "\"" + _baseline + "\", " + "\"" + ver + "\"" + ")]");
                }
            }

            sw.WriteLine("[Theory]");
            sw.Dispose();
        }