/// <summary>
        /// Fills the test suite template XSD with the required business actions nodes.
        /// </summary>
        /// <param name="testSuiteSchemaDocument"><see cref="XmlDocument"/> which contains the test suite template XSD.</param>
        /// <param name="testActionsParentNode">Parent node where the test actions should be filled.</param>
        /// <param name="businessActionsRepository">Business action data</param>
        private void FillTestSuiteSchemaTemplate(
            XmlDocument testSuiteSchemaDocument,
            XmlNode testActionsParentNode,
            BusinessActionsRepository businessActionsRepository)
        {
            foreach (BusinessAction businessAction in businessActionsRepository.EnumerateActions())
            {
                XmlNode newNode = testSuiteSchemaDocument.CreateNode(
                    XmlNodeType.Element,
                    "xs",
                    "element",
                    XmlNsXs);

                // add attribute name
                XmlAttribute xmlAttribute = testSuiteSchemaDocument.CreateAttribute("name");
                xmlAttribute.Value = businessAction.ActionName;
                newNode.Attributes.Append(xmlAttribute);

                // add attribute minOccurs
                xmlAttribute       = testSuiteSchemaDocument.CreateAttribute("minOccurs");
                xmlAttribute.Value = "1";
                newNode.Attributes.Append(xmlAttribute);

                AddBusinessActionParameters(businessAction, testSuiteSchemaDocument, newNode);

                // append child node
                testActionsParentNode.AppendChild(newNode);
            }
        }
        public void ParseBusinessActionsTest()
        {
            using (Stream stream = File.OpenRead("../../AccipioTests/Samples/OnlineBankingBusinessActions.xml"))
            {
                IBusinessActionXmlParser  parser = new BusinessActionsXmlParser(stream);
                BusinessActionsRepository businessActionsRepository = parser.Parse();

                // test id of actions
                Assert.AreEqual(businessActionsRepository.EnumerateActions().Count, 8);
                IList <BusinessAction> actions = businessActionsRepository.EnumerateActions();

                int i = 0;
                Assert.AreEqual(actions[i++].ActionName, "AssertOperationSuccessful");
                Assert.AreEqual(actions[i++].ActionName, "ClickActionTransfer");
                Assert.AreEqual(actions[i++].ActionName, "ConfirmTransfer");
                Assert.AreEqual(actions[i++].ActionName, "EnterDestinationAccountNumber");
                Assert.AreEqual(actions[i++].ActionName, "EnterTransferAmount");
                Assert.AreEqual(actions[i++].ActionName, "GoToPortal");
                Assert.AreEqual(actions[i++].ActionName, "SignIn");
                Assert.AreEqual(actions[i++].ActionName, "ViewAccount");
            }
        }