public UITestSuite[] GetTestSuites(string filename, string filename2)
        {
            List<UITestSuite> testSuites = new List<UITestSuite>();
            var dataProvider = new ExcelStorage(typeof(UIDataRaw));
            dataProvider.FileName = filename;
            dataProvider.StartRow = 2;
            dataProvider.StartColumn = 1;

            var sequenceList = new List<UICommandContainer>();
            var list = GetSequencesFromMaster(filename);
            var sequences = GetCommandSequences(filename2, list);
            foreach (var sequence in sequences.Sequences)
            {
                sequenceList.Add(sequence.Value);
            }

            foreach (var sheetName in Utility.GetExcelSheetNames(filename))
            {
                dataProvider.SheetName = sheetName;
                var data = (UIDataRaw[])dataProvider.ExtractRecords();
                var props = data.FirstOrDefault().GetType().GetProperties();
                var orderedSequences = new SerializableDictionary<int, UICommandContainer>();
                UITestSuite testSuite = null;
                for (int i = 0; i < data.Length; i++)
                {
                    TestCase testCase = null;
                    for (int x = 0; x < props.Count(); x++)
                    {
                        object val = data[i].GetType().GetProperty(props[x].Name).GetValue(data[i], null);
                        if (x==0 && val != null )
                        {
                            if (Utility.IsAllUpper(val.ToString()))
                            {
                                // add the last test case before creating new test suite and test case
                                if (testCase != null && !string.IsNullOrEmpty(testCase.GroupName))
                                {
                                    testSuite.Add(testCase.GroupName, testCase);
                                    testCase = new TestCase();
                                }

                                // add the previous test suite before creating a new one
                                if (testSuite != null) testSuites.Add(testSuite);
                                // get the suite name
                                testSuite = new UITestSuite();
                                testSuite.Name = val.ToString();
                                break;
                            }

                            object testcaseEnabled = data[i].GetType().GetProperty(props[x+1].Name).GetValue(data[i], null);
                            if (testcaseEnabled == null || ( testcaseEnabled.ToString().ToLower() != "y" && testcaseEnabled.ToString().ToLower() != "yes"))
                                continue; // this testcase is NOT enabled, so we skip processing

                            // get the testcase name
                            testCase = new TestCase();
                            testCase.GroupName = val.ToString();
                        }
                        if (x>1 && val != null && testCase!=null)
                        {
                            int sequencePosition = -1;
                            var sequencesPositions = val.ToString().Split(',');
                            foreach (var sPosition in sequencesPositions)
                            {
                                if (int.TryParse(sPosition, out sequencePosition))
                                {
                                    // get the ordered sequences for the test case
                                    var seq = sequenceList[x - (dataProvider.StartColumn + 1)];
                                    //testCase.CommandGroups.Sequences.Add(seq.Name,new UICommandContainer(seq.Name, seq.Commands.ToArray()));
                                    orderedSequences.Add(sequencePosition, seq);
                                }
                            }

                        }
                    }
                    // add testcase after constructed.  Skip test suites
                    if (testCase!=null && !string.IsNullOrEmpty(testCase.GroupName)) {

                        foreach (var uiCommandContainer in orderedSequences.OrderBy(x=>x.Key))
                        {
                            testCase.CommandGroups.Sequences.Add(uiCommandContainer.Value.Name+"("+uiCommandContainer.Key.ToString()+")", uiCommandContainer.Value);
                        }
                        orderedSequences = new SerializableDictionary<int, UICommandContainer>();
                        testSuite.Add(testCase.GroupName, testCase);
                        testCase = new TestCase();
                    }
                }
                // add the last test suite
                if (testSuite != null&&testSuite.Count>0) testSuites.Add(testSuite);
            }
            return testSuites.ToArray();
        }
Exemple #2
0
        public static SerializableDictionary<string, int> SortServerLoad(SerializableDictionary<string, int> dic)
        {
            SerializableDictionary<string, int> res = new SerializableDictionary<string, int>();

            foreach (var item in dic.OrderBy(i => i.Value))
            {
                res.Add(item.Key, item.Value);
            }

            return res;
        }
Exemple #3
0
        public UITestSuite[] GetTestSuites(string filename, string filename2)
        {
            List <UITestSuite> testSuites = new List <UITestSuite>();
            var dataProvider = new ExcelStorage(typeof(UIDataRaw));

            dataProvider.FileName    = filename;
            dataProvider.StartRow    = 2;
            dataProvider.StartColumn = 1;

            var sequenceList = new List <UICommandContainer>();
            var list         = GetSequencesFromMaster(filename);
            var sequences    = GetCommandSequences(filename2, list);

            foreach (var sequence in sequences.Sequences)
            {
                sequenceList.Add(sequence.Value);
            }

            foreach (var sheetName in Utility.GetExcelSheetNames(filename))
            {
                dataProvider.SheetName = sheetName;
                var         data             = (UIDataRaw[])dataProvider.ExtractRecords();
                var         props            = data.FirstOrDefault().GetType().GetProperties();
                var         orderedSequences = new SerializableDictionary <int, UICommandContainer>();
                UITestSuite testSuite        = null;
                for (int i = 0; i < data.Length; i++)
                {
                    TestCase testCase = null;
                    for (int x = 0; x < props.Count(); x++)
                    {
                        object val = data[i].GetType().GetProperty(props[x].Name).GetValue(data[i], null);
                        if (x == 0 && val != null)
                        {
                            if (Utility.IsAllUpper(val.ToString()))
                            {
                                // add the last test case before creating new test suite and test case
                                if (testCase != null && !string.IsNullOrEmpty(testCase.GroupName))
                                {
                                    testSuite.Add(testCase.GroupName, testCase);
                                    testCase = new TestCase();
                                }

                                // add the previous test suite before creating a new one
                                if (testSuite != null)
                                {
                                    testSuites.Add(testSuite);
                                }
                                // get the suite name
                                testSuite      = new UITestSuite();
                                testSuite.Name = val.ToString();
                                break;
                            }

                            object testcaseEnabled = data[i].GetType().GetProperty(props[x + 1].Name).GetValue(data[i], null);
                            if (testcaseEnabled == null || (testcaseEnabled.ToString().ToLower() != "y" && testcaseEnabled.ToString().ToLower() != "yes"))
                            {
                                continue;                                 // this testcase is NOT enabled, so we skip processing
                            }
                            // get the testcase name
                            testCase           = new TestCase();
                            testCase.GroupName = val.ToString();
                        }
                        if (x > 1 && val != null && testCase != null)
                        {
                            int sequencePosition   = -1;
                            var sequencesPositions = val.ToString().Split(',');
                            foreach (var sPosition in sequencesPositions)
                            {
                                if (int.TryParse(sPosition, out sequencePosition))
                                {
                                    // get the ordered sequences for the test case
                                    var seq = sequenceList[x - (dataProvider.StartColumn + 1)];
                                    //testCase.CommandGroups.Sequences.Add(seq.Name,new UICommandContainer(seq.Name, seq.Commands.ToArray()));
                                    orderedSequences.Add(sequencePosition, seq);
                                }
                            }
                        }
                    }
                    // add testcase after constructed.  Skip test suites
                    if (testCase != null && !string.IsNullOrEmpty(testCase.GroupName))
                    {
                        foreach (var uiCommandContainer in orderedSequences.OrderBy(x => x.Key))
                        {
                            testCase.CommandGroups.Sequences.Add(uiCommandContainer.Value.Name + "(" + uiCommandContainer.Key.ToString() + ")", uiCommandContainer.Value);
                        }
                        orderedSequences = new SerializableDictionary <int, UICommandContainer>();
                        testSuite.Add(testCase.GroupName, testCase);
                        testCase = new TestCase();
                    }
                }
                // add the last test suite
                if (testSuite != null && testSuite.Count > 0)
                {
                    testSuites.Add(testSuite);
                }
            }
            return(testSuites.ToArray());
        }