コード例 #1
0
        public void CreateMissingTestCases(TestCasesRoot root)
        {
            TestCasesRoot    = root;
            CreatedTestCases = new List <TestCase>();

            CreateAllTestCases(TestCasesRoot.Conditions);
        }
        /// <summary>
        /// used for unit tests
        /// </summary>
        /// <returns></returns>
        public static TestCasesRoot CreateSimpleTable2(int conditionCount, int actionCount, int testCasesCount)
        {
            TestCasesRoot testCasesRoot = new TestCasesRoot();

            testCasesRoot.CreateSimpleTableInternal2(conditionCount, actionCount);
            testCasesRoot.AddAndSelectTestCases2(testCasesCount);
            testCasesRoot.FinishTableCreation();

            return(testCasesRoot);
        }
        /// <summary>
        /// used for unit tests
        /// </summary>
        /// <returns></returns>
        public static TestCasesRoot CreateSimpleTable()
        {
            TestCasesRoot testCasesRoot = new TestCasesRoot();

            testCasesRoot.CreateSimpleTableInternal();
            testCasesRoot.AddAndSelectTestCases();
            testCasesRoot.FinishTableCreation();

            return(testCasesRoot);
        }
コード例 #4
0
        public void Load(TestCasesRoot testCasesRoot)
        {
            ConditionActionIdDictionary = new Dictionary <int, ConditionActionBase>();
            XmlDocument doc = new XmlDocument();

            doc.Load(FilePath);
            XmlElement root = doc.DocumentElement;

            if (root.Name.Equals(XmlNames.DecisionTableRootName))
            {
                if (root.Attributes[XmlNames.DescriptonName] != null)
                {
                    testCasesRoot.Description = root.Attributes[XmlNames.DescriptonName].Value;
                }
                else
                {
                    testCasesRoot.Description = "";
                }

                var xmlConditions = root.GetElementsByTagName(XmlNames.ConditionsName);
                var element       = xmlConditions[0] as XmlElement;
                foreach (XmlElement item in element.GetElementsByTagName(XmlNames.ConditionName))
                {
                    ConditionObject condition;
                    Load(item, out condition);
                    testCasesRoot.Conditions.Add(condition);
                    ConditionActionIdDictionary.Add(condition.LoadSaveId, condition);
                }

                var xmlActions = root.GetElementsByTagName(XmlNames.ActionsName);
                element = xmlActions[0] as XmlElement;
                foreach (XmlElement item in element.GetElementsByTagName(XmlNames.ActionName))
                {
                    ActionObject action;
                    Load(item, out action);
                    testCasesRoot.Actions.Add(action);
                    ConditionActionIdDictionary.Add(action.LoadSaveId, action);
                }

                var xmlTestCases = root.GetElementsByTagName(XmlNames.TestCasesName);
                element = xmlTestCases[0] as XmlElement;
                int displayIndex = 1;
                foreach (XmlElement item in element.GetElementsByTagName(XmlNames.TestCaseName))
                {
                    TestCase testCase;
                    Load(item, out testCase);
                    testCase.DisplayIndex = displayIndex++;
                    testCasesRoot.TestCases.Add(testCase);
                }
            }
            else
            {
                throw new XmlElementNotFoundException(XmlNames.DecisionTableRootName);
            }
        }
コード例 #5
0
 /// <summary>
 /// for unit tests only
 /// </summary>
 /// <param name="root"></param>
 /// <param name="conditionValues"></param>
 /// <param name="actionValues"></param>
 public void SetValues(TestCasesRoot root, List <ValueObject> conditionValues, List <ValueObject> actionValues)
 {
     if (conditionValues.Count != root.Conditions.Count)
     {
         throw new Exception("internal error");
     }
     for (int idx = 0; idx < root.Conditions.Count; idx++)
     {
         Conditions[idx].SelectedItemIndex = conditionValues[idx].SelectedItemIndex;
     }
     for (int idx = 0; idx < root.Actions.Count; idx++)
     {
         Actions[idx].SelectedItemIndex = actionValues[idx].SelectedItemIndex;
     }
 }
コード例 #6
0
        private void BuildIdDictionary(TestCasesRoot testCasesRoot)
        {
            int id = 1;

            foreach (ConditionObject condition in testCasesRoot.Conditions)
            {
                condition.LoadSaveId = id;
                ConditionActionIdDictionary.Add(id++, condition);
            }

            if (id < 1000)
            {
                id = 1000;
            }

            foreach (ActionObject action in testCasesRoot.Actions)
            {
                action.LoadSaveId = id;
                ConditionActionIdDictionary.Add(id++, action);
            }
        }
コード例 #7
0
        public void Save(TestCasesRoot testCasesRoot)
        {
            ConditionActionIdDictionary = new Dictionary <int, ConditionActionBase>();
            BuildIdDictionary(testCasesRoot);

            XmlDocument doc = new XmlDocument();

            doc.AppendChild(doc.CreateXmlDeclaration("1.0", "UTF-8", null));
            var root = doc.CreateElement(XmlNames.DecisionTableRootName);

            doc.AppendChild(root);
            if (!string.IsNullOrEmpty(testCasesRoot.Description))
            {
                root.AddAttribute(XmlNames.DescriptonName, testCasesRoot.Description);
            }

            var xmlConditions = root.AddElement(XmlNames.ConditionsName);

            foreach (ConditionObject condition in testCasesRoot.Conditions)
            {
                Save(xmlConditions, condition);
            }

            var xmlActions = root.AddElement(XmlNames.ActionsName);

            foreach (ActionObject action in testCasesRoot.Actions)
            {
                Save(xmlActions, action);
            }

            var xmlTestCases = root.AddElement(XmlNames.TestCasesName);

            foreach (TestCase testCase in testCasesRoot.TestCases.OrderBy(tc => tc.DisplayIndex))
            {
                Save(xmlTestCases, testCase);
            }

            doc.Save(FilePath);
        }
コード例 #8
0
 public List <TestCase> Expand(TestCasesRoot root)
 {
     return(Expand(root.Conditions, root.TestCases));
 }