public void InsertCondition(int index, ConditionObject newCondition)
 {
     Conditions.Insert(index, newCondition);
     AddToTestCases(newCondition, index);
     PopulateRows(ConditionTable, Conditions, TestCases, TestCase.CollectionType.Conditions);
     ProcessConditionsChanged();
 }
Example #2
0
        public ConditionObject Clone()
        {
            ConditionObject clone = new ConditionObject();

            Clone(clone);
            return(clone);
        }
 public void AppendCondition(ConditionObject conditionObject)
 {
     Conditions.Add(conditionObject);
     AddToTestCases(conditionObject);
     PopulateRows(ConditionTable, Conditions, TestCases, TestCase.CollectionType.Conditions);
     ProcessConditionsChanged();
 }
        private void CreateSimpleTableInternal(int conditionCount = 3, int actionCount = 3)
        {
            List <ObservableCollection <EnumValue> > lists = new List <ObservableCollection <EnumValue> >();
            int listNumber    = 0;
            int enumIdx       = 0;
            var subListSample = new ObservableCollection <EnumValue>();

            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}-Default", listNumber, enumIdx++), true, false, true));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}", listNumber++, enumIdx++), false, true, false));
            enumIdx       = 0;
            subListSample = new ObservableCollection <EnumValue>();
            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}", listNumber, enumIdx++), true, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}-Default", listNumber, enumIdx++), false, false, true));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}", listNumber++, enumIdx++), false, true, false));
            enumIdx       = 0;
            subListSample = new ObservableCollection <EnumValue>();
            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}", listNumber, enumIdx++), true, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}-Default", listNumber++, enumIdx++), false, true, true));
            enumIdx       = 0;
            subListSample = new ObservableCollection <EnumValue>();
            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}-Default", listNumber, enumIdx++), true, false, true));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}", listNumber++, enumIdx++), false, true, false));
            enumIdx       = 0;
            subListSample = new ObservableCollection <EnumValue>();
            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}", listNumber, enumIdx++), true, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}-Default", listNumber, enumIdx++), false, false, true));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}", listNumber++, enumIdx++), false, true, false));
            enumIdx       = 0;
            subListSample = new ObservableCollection <EnumValue>();
            lists.Add(subListSample);
            subListSample.Add(new EnumValue(String.Format("{0}-Invalid-{1}", listNumber, enumIdx++), true, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-EnumValue-{1}", listNumber, enumIdx++), false, false, false));
            subListSample.Add(new EnumValue(String.Format("{0}-Don' t care-{1}-Default", listNumber++, enumIdx++), false, true, true));

            int listIndex = 0;

            for (int idx = 1; idx <= conditionCount; idx++)
            {
                Conditions.Add(ConditionObject.Create(String.Format("Condition {0}", idx), lists[listIndex++]));
            }

            for (int idx = 1; idx <= actionCount; idx++)
            {
                Actions.Add(ActionObject.Create(String.Format("Action1{0}", idx), lists[listIndex++]));
            }
        }
        public void ChangeCondition(int index, ConditionObject conditionClone)
        {
            List <int> savedSelectedItemIndexes = SaveSelectedConditionItemIndex(index);

            Conditions[index].Merge(conditionClone);
            RestoreSelectedConditionItemIndex(index, savedSelectedItemIndexes);
            RecalculateStatistics();
        }
Example #6
0
        public static ConditionObject Create(string name)
        {
            ConditionObject ao = new ConditionObject();

            ao.Name     = name;
            ao.DataType = ValueDataType.Enumeration;
            return(ao);
        }
Example #7
0
        /// <summary>
        /// condition objects are only supported with enumerations
        /// </summary>
        /// <param name="text"></param>
        /// <param name="enums"></param>
        /// <returns></returns>
        public static ConditionObject Create(string name, ObservableCollection <EnumValue> enums)
        {
            ConditionObject ao = new ConditionObject();

            ao.Name       = name;
            ao.DataType   = ValueDataType.Enumeration;
            ao.EnumValues = enums;
            return(ao);
        }
Example #8
0
        private void Load(XmlElement element, out ConditionObject condition)
        {
            string name = element.GetAttributeStringValue(XmlNames.NameAttributeName);

            // only enums are supported by conditions ValueDataType type = element.GetAttributeEnumValue<ValueDataType>(XmlNames.TypeAttributeName);
            condition             = ConditionObject.Create(name);
            condition.LoadSaveId  = element.GetAttributeIntValue(XmlNames.IdAttributeName, XmlElementOption.MustHaveValue);
            condition.DefaultText = element.GetAttributeStringValue(XmlNames.DefaultTextAttributeName, XmlElementOption.Optional);
            condition.DefaultBool = element.GetAttributeBoolValue(XmlNames.DefaultBoolAttributeName);
            condition.TooltipText = element.GetAttributeStringValue(XmlNames.TooltipTextAttributeName);

            LoadEnumValues(element, condition);
        }
Example #9
0
        /// <summary>
        /// calculate possibble enum values
        /// invalid do not count --> this is an invalid value
        /// don't care do not count --> this marks a value for don't care for this test case
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public static long CalculateEnumValuesWithoutDontCareAndInvalid(ConditionObject condition)
        {
            long count = 0;

            foreach (EnumValue value in condition.EnumValues)
            {
                if (!value.DontCare && !value.IsInvalid)
                {
                    count++;
                }
            }
            return(count);
        }
 private void AddToTestCases(ConditionObject conditionObject, int whereToInsert = -1)
 {
     foreach (TestCase testCase in TestCases)
     {
         if (whereToInsert < 0)
         {
             testCase.AddValueObject(TestCase.CollectionType.Conditions, ValueObject.Create(conditionObject));
         }
         else
         {
             testCase.InsertValueObject(TestCase.CollectionType.Conditions, whereToInsert, ValueObject.Create(conditionObject));
         }
     }
 }
Example #11
0
        private void Save(XmlElement parent, ConditionObject condition)
        {
            var xmlCondition = parent.AddElement(XmlNames.ConditionName).AddAttribute(XmlNames.NameAttributeName, condition.Name).AddAttribute(XmlNames.TypeAttributeName, condition.DataType.ToString());

            xmlCondition.AddAttribute(XmlNames.IdAttributeName, condition.LoadSaveId);
            xmlCondition.AddAttribute(XmlNames.DefaultTextAttributeName, condition.DefaultText);
            xmlCondition.AddAttribute(XmlNames.DefaultBoolAttributeName, condition.DefaultBool);
            xmlCondition.AddAttribute(XmlNames.TooltipTextAttributeName, condition.TooltipText);
            if (condition.EnumValues != null && condition.EnumValues.Count != 0)
            {
                var xmlEnumValues = xmlCondition.AddElement(XmlNames.EnumValuesName);
                foreach (EnumValue value in condition.EnumValues)
                {
                    Save(xmlEnumValues, value);
                }
            }
        }
 public void MoveConditionUp(int index)
 {
     if (Conditions.Count > 1 && index >= 1)
     {
         ConditionObject co = Conditions[index];
         Conditions.RemoveAt(index);
         Conditions.Insert(index - 1, co);
         foreach (TestCase testCase in TestCases)
         {
             var vo = testCase.Conditions[index];
             testCase.Conditions.RemoveAt(index);
             testCase.Conditions.Insert(index - 1, vo);
         }
         PopulateRows(ConditionTable, Conditions, TestCases, TestCase.CollectionType.Conditions);
         ProcessConditionsChanged();
     }
 }
Example #13
0
 private void CreateOneTestCase(IList <ConditionObject> conditions, int condIndex, List <KeyValuePair <int, ConditionObject> > pairs)
 {
     if (conditions.Count > condIndex)
     {
         ConditionObject condition = conditions[condIndex];
         if (condition.ValidEnumValueIndexes.Count == 0)
         {
             if (condition.EnumValues.Count == 0)
             {
                 KeyValuePair <int, ConditionObject> pair = new KeyValuePair <int, ConditionObject>(-1, condition);
                 pairs.Add(pair);
                 CreateOneTestCase(conditions, condIndex + 1, pairs);
                 pairs.Remove(pair);
             }
             else
             {
                 KeyValuePair <int, ConditionObject> pair = new KeyValuePair <int, ConditionObject>(0, condition);
                 pairs.Add(pair);
                 CreateOneTestCase(conditions, condIndex + 1, pairs);
                 pairs.Remove(pair);
             }
         }
         else
         {
             foreach (int enumIndex in condition.ValidEnumValueIndexes)
             {
                 KeyValuePair <int, ConditionObject> pair = new KeyValuePair <int, ConditionObject>(enumIndex, condition);
                 pairs.Add(pair);
                 CreateOneTestCase(conditions, condIndex + 1, pairs);
                 pairs.Remove(pair);
             }
         }
     }
     else
     {
         CreateNewTestCase(pairs);
     }
 }
        private void CreateSampleProjectInternal()
        {
            var enumList = new ObservableCollection <EnumValue>();

            enumList.Add(new EnumValue("invalid condition", true, false, true, "this is an invalid condition please choose an other value"));
            enumList.Add(new EnumValue("Printer is printing", false, false, false, "everything is ok"));
            enumList.Add(new EnumValue("Printer is not printing", false, false, false, "problems with printing or printing quality"));
            enumList.Add(new EnumValue("DC", false, true, false, "don't care this condition in this case"));

            Conditions.Add(ConditionObject.Create("Basic Printer status", enumList));

            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("invalid condition", true, false, true, "this is an invalid condition please choose an other value"));
            enumList.Add(new EnumValue("LED is on", false, false, false, "Power LED is on"));
            enumList.Add(new EnumValue("LED is flashing", false, false, false, "Power LED is flashing"));
            enumList.Add(new EnumValue("LED is off", false, false, false, "Power LED is off"));
            enumList.Add(new EnumValue("DC", false, true, false, "don't care this condition in this case"));

            Conditions.Add(ConditionObject.Create("Green LED", enumList));

            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("invalid condition", true, false, true, "this is an invalid condition please choose an other value"));
            enumList.Add(new EnumValue("Blank sheet is ejected", false, false, false, "Printer ejects only blank sheets"));
            enumList.Add(new EnumValue("Print quality is bad", false, false, false, "Printer output has bad quality"));
            enumList.Add(new EnumValue("Nothing is ejected", false, false, false, "Printer don't eject a sheet"));
            enumList.Add(new EnumValue("DC", false, true, false, "don't care this condition in this case"));

            Conditions.Add(ConditionObject.Create("Paper", enumList));


            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("", false, false, true, "nothing to do"));
            enumList.Add(new EnumValue("Check connection", false, false, false, "Check the printer power connection"));

            Actions.Add(ActionObject.Create("Power", enumList));

            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("", false, false, true, "nothing to do"));
            enumList.Add(new EnumValue("Check filling level", false, false, false, "Check the fill level of the ink cartridges"));

            Actions.Add(ActionObject.Create("Ink catridge", enumList));

            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("", false, false, true, "nothing to do"));
            enumList.Add(new EnumValue("Check connection", false, false, false, "Check the printer computer connection"));

            Actions.Add(ActionObject.Create("PC connection", enumList));

            enumList = new ObservableCollection <EnumValue>();
            enumList.Add(new EnumValue("", false, false, true, "nothing to do"));
            enumList.Add(new EnumValue("Check paper filling level", false, false, false, "Does the printer contain enough paper?"));
            enumList.Add(new EnumValue("Check for clean (unused) paper", false, false, false, "Does the printer contain blank paper?"));

            Actions.Add(ActionObject.Create("Paper", enumList));

            int      idx = 1;
            TestCase tc  = AddTestCase();

            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 1, 4, 4 }, new int[0]);
            tc.Description = "This is the description of TestCase 1";

            tc = AddTestCase();
            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 2, 3, 4 }, new int[] { 1 });
            tc.Description = "This is the description of TestCase 2";

            tc = AddTestCase();
            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 2, 2, 4 }, new int[] { 0, 1, 0, 1 });
            tc.Description = "This is the description of TestCase 3";

            tc = AddTestCase();
            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 2, 1, 1 }, new int[] { 0, 1, 0, 0 });
            tc.Description = "This is the description of TestCase 4";

            tc = AddTestCase();
            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 2, 1, 2 }, new int[] { 0, 1, 0, 2 });
            tc.Description = "This is the description of TestCase 5";

            tc = AddTestCase();
            tc.DisplayIndex = idx++;
            SetSelectedItemIndex(tc, new int[] { 2, 1, 3 }, new int[] { 0, 0, 1, 1 });
            tc.Description = "This is the description of TestCase 6";

            this.Description = "This is the description of the sample project";
        }