Exemple #1
0
        public void AppendCopyOfTestCaseSampleProjectTest()
        {
            TestCasesRoot tcr = new TestCasesRoot();

            tcr.CreateSampleProject();
            TestUtils.CheckTestCasesAndConditionsAndActions(tcr);
            int testCasesCount = tcr.TestCases.Count;

            for (int tcIdx = 0; tcIdx < testCasesCount; tcIdx++)
            {
                TestCase newTestCase      = tcr.InsertTestCase();
                TestCase templateTestCase = tcr.TestCases[tcIdx];
                tcr.CopyTestCaseSettings(templateTestCase, newTestCase);
            }

            // create and save the sample project
            string savePath = Path.Combine(TestSupport.CreatedFilesDirectory, "SimpleProject.dtc");

            tcr.Save(savePath);
            ProcessStartInfo info = new ProcessStartInfo(@"C:\Program Files (x86)\Notepad++\notepad++.exe", savePath);

            Process.Start(info);

            for (int tcIdx = 0; tcIdx < testCasesCount; tcIdx++)
            {
                CompareTestCases(tcr, tcIdx, tcIdx + testCasesCount);
            }
        }
Exemple #2
0
        public void CompareTestCases2Test(int selected11, int selected12, int selected13, int selected21, int selected22, int selected23, bool unique1, bool unique2, int expectedCoveredCount)
        {
            TestCasesRoot tcr   = new TestCasesRoot();
            var           enum1 = TestCasesRoot.CreateSampleEnum("enum1", 6, 0, 0, 5);
            var           enum2 = TestCasesRoot.CreateSampleEnum("enum2", 6, 0, 0, 5);
            var           enum3 = TestCasesRoot.CreateSampleEnum("enum3", 6, 0, 0, 5);

            tcr.Conditions.Add(ConditionObject.Create("enum1", enum1));
            tcr.Conditions.Add(ConditionObject.Create("enum2", enum2));
            tcr.Conditions.Add(ConditionObject.Create("enum3", enum3));
            List <ValueObject> conditions1 = new List <ValueObject>();

            conditions1.Add(new ValueObject(enum1, selected11));
            conditions1.Add(new ValueObject(enum2, selected12));
            conditions1.Add(new ValueObject(enum3, selected13));
            List <ValueObject> conditions2 = new List <ValueObject>();

            conditions2.Add(new ValueObject(enum1, selected21));
            conditions2.Add(new ValueObject(enum2, selected22));
            conditions2.Add(new ValueObject(enum3, selected23));

            TestCase tc1 = tcr.InsertTestCase();

            tc1.SetValues(tcr, conditions1, new List <ValueObject>());
            TestCase tc2 = tcr.InsertTestCase();

            tc2.SetValues(tcr, conditions2, new List <ValueObject>());
            Trace.WriteLine(tc1);
            Trace.WriteLine(tc2);
            bool isEqual = tc1.TestSettingIsEqual(tc2);

            Assert.That(TestCase.UpdateUniqueness(tc1, tc2) == (unique1 && unique2));
            long count = tcr.CalculateNumberOfUniqueCoveredTestCases();

            Assert.That(tc1.TestCaseIsUnique == unique1);
            Assert.That(tc2.TestCaseIsUnique == unique2);
            Assert.That(count == expectedCoveredCount);
        }
Exemple #3
0
        public void CalculateUniqueTestCasesWithDontCare(int id, int[] values, int expectedCombinations, int expectedCoveredTestCases, double expectedCovarage)
        {
            string        testOutputPath  = Path.Combine(TestSupport.CreatedFilesDirectory, "TestOutput.txt");
            string        testSettingPath = Path.Combine(TestSupport.CreatedFilesDirectory, "TestSetting.txt");
            TestCasesRoot tcr             = new TestCasesRoot();

            List <List <ValueObject> > listOfValueLists = new List <List <ValueObject> >();

            var enum1 = TestCasesRoot.CreateSampleEnum("enum1", 4, 0, 0, 3);
            var enum2 = TestCasesRoot.CreateSampleEnum("enum2", 4, 0, 0, 3);
            var enum3 = TestCasesRoot.CreateSampleEnum("enum3", 6, 0, 0, 5);

            tcr.Conditions.Add(ConditionObject.Create("name", enum1));
            tcr.Conditions.Add(ConditionObject.Create("name", enum2));
            tcr.Conditions.Add(ConditionObject.Create("name", enum3));

            for (int idx1 = 0; idx1 < 3; idx1++)
            {
                for (int idx2 = 0; idx2 < 4; idx2++)
                {
                    for (int idx3 = 0; idx3 < 6; idx3++)
                    {
                        listOfValueLists.Add(new List <ValueObject>()
                        {
                            new ValueObject(enum1, idx1), new ValueObject(enum2, idx2), new ValueObject(enum3, idx3),
                        });
                    }
                }
            }

            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 3), new ValueObject(enum3, 5),
            });

            for (int idx = 0; idx < listOfValueLists.Count; idx++)
            {
                List <ValueObject> condList = listOfValueLists[idx];
                File.AppendAllText(testOutputPath, String.Format("{0:d2} {1} {2} {3}" + Environment.NewLine, idx, condList[0].SelectedValue.ToTestString(), condList[1].SelectedValue.ToTestString(), condList[2].SelectedValue.ToTestString()));
            }

            for (int idx = 0; idx < values.Length; idx++)
            {
                //TestCase tc = new TestCase(String.Format("tc {0:d2}", idx), listOfValueLists[values[idx]], new List<ValueObject>());
                //tcr.TestCases.Add(tc);
                TestCase tc = tcr.InsertTestCase();
                tc.SetValues(tcr, listOfValueLists[values[idx]], new List <ValueObject>());
                //File.AppendAllText(testSettingPath, String.Format("{0}" + Environment.NewLine, tc));
            }
            Statistics stat = tcr.CalculateStatistics();

            for (int idx = 0; idx < tcr.TestCases.Count; idx++)
            {
                File.AppendAllText(testSettingPath, String.Format("{0}" + Environment.NewLine, tcr.TestCases[idx]));
            }

            File.AppendAllText(testSettingPath, Environment.NewLine + Environment.NewLine);

            ExpandTestCases expand     = new ExpandTestCases();
            var             resultList = expand.Expand(tcr);

            foreach (TestCase testCase in resultList)
            {
                File.AppendAllText(testSettingPath, String.Format("{0}" + Environment.NewLine, testCase));
            }

            Assert.That(stat.CoveredTestCases == expectedCoveredTestCases);
            Assert.That(stat.PossibleCombinations == expectedCombinations);
            Assert.That(stat.Coverage.Equals(expectedCovarage));
        }
Exemple #4
0
        public void CalculateUniqueTestCases(int id, int[] values, int expectedResult)
        {
            TestCasesRoot tcr = new TestCasesRoot();
            List <List <ValueObject> > listOfValueLists = new List <List <ValueObject> >();

            var enum1 = TestCasesRoot.CreateSampleEnum("enum1", 4, 0, 0, -1);
            var enum2 = TestCasesRoot.CreateSampleEnum("enum2", 4, 0, 0, 1);
            var enum3 = TestCasesRoot.CreateSampleEnum("enum3", 6, 0, 0, -1);

            tcr.Conditions.Add(ConditionObject.Create("name", enum1));
            tcr.Conditions.Add(ConditionObject.Create("name", enum2));
            tcr.Conditions.Add(ConditionObject.Create("name", enum3));

            //0
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });
            //2
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 3), new ValueObject(enum3, 3),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 3), new ValueObject(enum3, 3),
            });
            //4
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 3), new ValueObject(enum3, 3),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 3), new ValueObject(enum3, 3),
            });
            //6
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 2), new ValueObject(enum3, 3),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 2), new ValueObject(enum3, 3),
            });
            //8
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 3), new ValueObject(enum3, 4),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 3), new ValueObject(enum2, 3), new ValueObject(enum3, 4),
            });
            //10
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 5),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 5),
            });
            //12
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 2), new ValueObject(enum3, 3),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 2), new ValueObject(enum3, 3),
            });
            //14 not valid for unique count
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 2), new ValueObject(enum3, 0),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 2), new ValueObject(enum2, 2), new ValueObject(enum3, 0),
            });
            //16
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });
            //18
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });
            listOfValueLists.Add(new List <ValueObject>()
            {
                new ValueObject(enum1, 1), new ValueObject(enum2, 2), new ValueObject(enum3, 2),
            });

            List <TestCase> testCases = new List <TestCase>();

            for (int idx = 0; idx < values.Length; idx++)
            {
                TestCase tc = tcr.InsertTestCase();
                tc.SetValues(tcr, listOfValueLists[values[idx]], new List <ValueObject>());
                //TestCase tc = new TestCase(String.Format("tc {0:d2} {1:d2}", idx, values[idx]), listOfValueLists[values[idx]], new List<ValueObject>());
                //testCases.Add(tc);
                //Trace.WriteLine(tc);
            }
            long result = tcr.CalculateNumberOfUniqueCoveredTestCases();

            Assert.That(result == expectedResult);
        }