public void ParseTestSuite() { TestSuite testSuite; using (Stream stream = File.OpenRead(@"..\..\..\Data\Samples\TestSuite.xml")) { using (XmlTestSuiteParser parser = new XmlTestSuiteParser(stream, businessActionsRepository)) { testSuite = parser.Parse(); } } Assert.AreEqual("Banking", testSuite.TestSuiteName); Assert.AreEqual("OnlineBanking", testSuite.TestRunnerName); Assert.AreEqual("OnlineBankingNamespace", testSuite.Namespace); Assert.AreEqual(true, testSuite.IsParallelizable); Assert.AreEqual(20, testSuite.DegreeOfParallelism); Assert.AreEqual(1, testSuite.TestCasesCount); TestCase testCase = testSuite.GetTestCase("MoneyTransfer"); Assert.IsNotNull(testCase); Assert.AreEqual("MoneyTransfer", testCase.TestCaseName); Assert.AreEqual(8, testCase.TestSteps.Count); TestCaseStep testCaseStep = testCase.GetTestAction("GoToPortal"); Assert.IsNotNull(testCaseStep); Assert.AreEqual("GoToPortal", testCaseStep.ActionName); Assert.IsFalse(testCaseStep.HasParameters, "Action should NOT have parameters!"); testCaseStep = testCase.GetTestAction("SignIn"); Assert.IsNotNull(testCaseStep); Assert.AreEqual("SignIn", testCaseStep.ActionName); Assert.AreEqual(2, testCaseStep.Parameters.Count); Assert.IsTrue(testCaseStep.HasParameters, "Action should have 2 parameters!"); Assert.IsNotNull(testCaseStep.GetParameterValue("username")); Assert.AreEqual("john", testCaseStep.GetParameterValue("username")); Assert.IsNotNull(testCaseStep.GetParameterValue("password")); Assert.AreEqual("doe", testCaseStep.GetParameterValue("password")); testCaseStep = testCase.GetTestAction("EnterDestinationAccountNumber"); Assert.IsNotNull(testCaseStep); Assert.AreEqual("EnterDestinationAccountNumber", testCaseStep.ActionName); Assert.AreEqual(1, testCaseStep.Parameters.Count); Assert.IsNotNull(testCaseStep.GetParameterValue("destAccountId")); Assert.AreEqual(23677, testCaseStep.GetParameterValue("destAccountId")); testCaseStep = testCase.GetTestAction("EnterTransferAmount"); Assert.IsNotNull(testCaseStep); Assert.AreEqual("EnterTransferAmount", testCaseStep.ActionName); Assert.AreEqual(1, testCaseStep.Parameters.Count); Assert.IsNotNull(testCaseStep.GetParameterValue("transferAmount")); Assert.AreEqual(644.33m, testCaseStep.GetParameterValue("transferAmount")); }
public void InvalidSuiteElementTest() { const string Xml = "<suite><element /></suite>"; byte[] bytes = Encoding.ASCII.GetBytes(Xml); using (MemoryStream stream = new MemoryStream(bytes)) { using (XmlTestSuiteParser parser = new XmlTestSuiteParser(stream, businessActionsRepository)) { parser.Parse(); } } }
public void InvalidTestCaseElementTest() { const string Xml = "<suite><case id='SearchForProjects' category='Smoke'><element /></case></suite>"; byte[] bytes = Encoding.ASCII.GetBytes(Xml); using (MemoryStream stream = new MemoryStream(bytes)) { using (XmlTestSuiteParser parser = new XmlTestSuiteParser(stream, businessActionsRepository)) { parser.Parse(); } } }
public int Execute(IEnumerable <string> args) { List <string> unhandledArguments = options.Parse(args); if (unhandledArguments.Count > 0) { throw new ArgumentException("There are some unsupported options."); } if (String.IsNullOrEmpty(businessActionsXmlFileName)) { throw new ArgumentException("Missing business actions XML file name."); } if (String.IsNullOrEmpty(testSuiteXsdFileName)) { throw new ArgumentException("Missing test suites XSD file name."); } if (String.IsNullOrEmpty(templateFileName)) { throw new ArgumentException("Missing template file name."); } if (String.IsNullOrEmpty(templateFileExtension)) { throw new ArgumentException("Missing template file extension."); } // parse business actions using (Stream xmlStream = File.OpenRead(businessActionsXmlFileName)) { IBusinessActionXmlParser businessActionXmlParser = new BusinessActionsXmlParser(xmlStream); businessActionsRepository = businessActionXmlParser.Parse(); } XmlValidationHelper xmlValidationHelper = new XmlValidationHelper(); foreach (string testSuiteFileName in testSuitesFileNames) { // validate xml with xsd schema xmlValidationHelper.ValidateXmlDocument(testSuiteFileName, testSuiteXsdFileName); using (XmlTestSuiteParser testSuiteParser = new XmlTestSuiteParser(testSuiteFileName, businessActionsRepository)) { TestSuite parsedTestSuite = testSuiteParser.Parse(); parsedTestSuite.BusinessActionsRepository = businessActionsRepository; // generate c# code string codeFileName = Path.Combine( outputDir, Path.GetFileName(Path.ChangeExtension(testSuiteFileName, templateFileExtension))); System.Console.WriteLine("Creating '{0}'", codeFileName); ITestCodeGenerator codeGenerator = new TemplatedTestCodeGenerator(templateFileName, codeFileName); codeGenerator.Generate(parsedTestSuite); } } return(0); }