Ejemplo n.º 1
0
 public XElement GetTestResultsAsXelement(ISearchCmdletBaseDataObject searchCriteria, List<ITestSuite> suites)
 {
     var gathered = new GatherTestResultsCollections();
     gathered.GatherCollections(searchCriteria, suites);
     var suitesElement = CreateSuitesXElementWithParameters(gathered.TestSuites, gathered.TestScenarios, gathered.TestResults, (new XMLElementsNativeStruct()));
     return suitesElement;
 }
 public void GatherCollections(ISearchCmdletBaseDataObject searchCriteria, List<ITestSuite> suitesForSearch)
 {
     var testResultsSearcher = new TestResultsSearcher();
     TestSuites = testResultsSearcher.SearchForSuites(searchCriteria, suitesForSearch);
     TestScenarios = testResultsSearcher.SearchForScenarios(searchCriteria, suitesForSearch);
     TestResults = testResultsSearcher.SearchForTestResults(searchCriteria, suitesForSearch);
 }
 public virtual void GatherCollections(ISearchCmdletBaseDataObject searchCriteria, List<ITestSuite> suitesForSearch)
 {
     // 20150925
     // var testResultsSearcher = new TestResultsSearcher();
     var testResultsSearcher = ProxyFactory.Get<TestResultsSearcher>();
     TestSuites = testResultsSearcher.SearchForSuites(searchCriteria, suitesForSearch);
     TestScenarios = testResultsSearcher.SearchForScenarios(searchCriteria, suitesForSearch);
     TestResults = testResultsSearcher.SearchForTestResults(searchCriteria, suitesForSearch);
 }
Ejemplo n.º 4
0
 public XDocument GetTestResultsAsXdocument(ISearchCmdletBaseDataObject searchCriteria, List<ITestSuite> suites, List<ITestPlatform> platforms)
 {
     var suitesElement = GetTestResultsAsXelement(searchCriteria, suites);
     var platformsElement = GetTestPlatformsAsXelement(new XMLElementsNativeStruct(), platforms);
     var document = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
     var rootElement = new XElement("results", platformsElement, suitesElement);
     document.Add(rootElement);
     return document;
 }
Ejemplo n.º 5
0
        public virtual void GatherCollections(ISearchCmdletBaseDataObject searchCriteria, List <ITestSuite> suitesForSearch)
        {
            // 20150925
            // var testResultsSearcher = new TestResultsSearcher();
            var testResultsSearcher = ProxyFactory.Get <TestResultsSearcher>();

            TestSuites    = testResultsSearcher.SearchForSuites(searchCriteria, suitesForSearch);
            TestScenarios = testResultsSearcher.SearchForScenarios(searchCriteria, suitesForSearch);
            TestResults   = testResultsSearcher.SearchForTestResults(searchCriteria, suitesForSearch);
        }
Ejemplo n.º 6
0
        public XDocument GetTestResultsAsXdocument(ISearchCmdletBaseDataObject searchCriteria, List <ITestSuite> suites, List <ITestPlatform> platforms)
        {
            var suitesElement    = GetTestResultsAsXelement(searchCriteria, suites);
            var platformsElement = GetTestPlatformsAsXelement(new XMLElementsNativeStruct(), platforms);
            var document         = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
            var rootElement      = new XElement("results", platformsElement, suitesElement);

            document.Add(rootElement);
            return(document);
        }
Ejemplo n.º 7
0
        public XElement GetTestResultsAsXelement(ISearchCmdletBaseDataObject searchCriteria, List <ITestSuite> suites)
        {
            // 20150925
            // var gathered = new GatherTestResultsCollections();
            var gathered = ProxyFactory.Get <GatherTestResultsCollections>();

            gathered.GatherCollections(searchCriteria, suites);
            var suitesElement = CreateSuitesXElementWithParameters(gathered.TestSuites, gathered.TestScenarios, gathered.TestResults, (new XMLElementsNativeStruct()));

            return(suitesElement);
        }
Ejemplo n.º 8
0
        public virtual void GatherCollections(ISearchCmdletBaseDataObject searchCriteria)
        {
            // IOrderedEnumerable<ITestSuite> suites = TmxHelper.SearchForSuites(searchCriteria);
            // TestSuites = suites;
            TestSuites = TmxHelper.SearchForSuites(searchCriteria);

            // IOrderedEnumerable<ITestScenario> scenarios = TmxHelper.SearchForScenarios(searchCriteria);
            // TestScenarios = scenarios;
            TestScenarios = TmxHelper.SearchForScenarios(searchCriteria);

            // IOrderedEnumerable<ITestResult> testResults = TmxHelper.SearchForTestResults(searchCriteria);
            // TestResults = testResults;
            TestResults = TmxHelper.SearchForTestResults(searchCriteria);
        }
Ejemplo n.º 9
0
 public virtual void ExportResultsToXml(ISearchCmdletBaseDataObject cmdlet, string path, List <ITestSuite> suites, List <ITestPlatform> platforms)
 {
     try {
         var document = GetTestResultsAsXdocument(cmdlet, suites, platforms);
         document.Save(path);
     }
     catch (Exception eCreateDocument) {
         throw new Exception(
                   "Unable to save XML report to the file '" +
                   path +
                   "'. " +
                   eCreateDocument.Message);
     }
 }
 public virtual void GatherCollections(ISearchCmdletBaseDataObject searchCriteria)
 {
     // IOrderedEnumerable<ITestSuite> suites = TmxHelper.SearchForSuites(searchCriteria);
     // TestSuites = suites;
     TestSuites = TmxHelper.SearchForSuites(searchCriteria);
     
     // IOrderedEnumerable<ITestScenario> scenarios = TmxHelper.SearchForScenarios(searchCriteria);
     // TestScenarios = scenarios;
     TestScenarios = TmxHelper.SearchForScenarios(searchCriteria);
     
     // IOrderedEnumerable<ITestResult> testResults = TmxHelper.SearchForTestResults(searchCriteria);
     // TestResults = testResults;
     TestResults = TmxHelper.SearchForTestResults(searchCriteria);
 }
Ejemplo n.º 11
0
 public void ExportResultsToXml(ISearchCmdletBaseDataObject cmdlet, string path, List<ITestSuite> suites, List<ITestPlatform> platforms)
 {
     try {
         var document = GetTestResultsAsXdocument(cmdlet, suites, platforms);
         document.Save(path);
     }
     catch (Exception eCreateDocument) {
         throw new Exception(
             "Unable to save XML report to the file '" +
             path +
             "'. " + 
             eCreateDocument.Message);
     }
 }
Ejemplo n.º 12
0
        public static void ExportResultsToJUnitXML(ISearchCmdletBaseDataObject cmdlet, string path)
        {
            try {
                // 20150925
                // var gathered = new GatherTestResultsCollections();
                var gathered = ProxyFactory.Get <GatherTestResultsCollections>();
                gathered.GatherCollections(cmdlet);

                // 20150925
                // var testResultsExporter = new TestResultsExporter();
                var testResultsExporter = ProxyFactory.Get <TestResultsExporter>();
                var suitesElement       = testResultsExporter.CreateSuitesXElementWithParameters(
                    gathered.TestSuites,
                    gathered.TestScenarios,
                    gathered.TestResults,
                    (new XMLElementsJUnitStruct()));

                var document = new XDocument();
                document.Add(suitesElement);
                document.Save(path);
            }
            catch (Exception eCreateDocument) {
                // 20140720
//                cmdlet.WriteError(
//                    cmdlet,
//                    "Unable to save XML report to the file '" +
//                    path +
//                    "'. " +
//                    eCreateDocument.Message,
//                    "FailedToSaveReport",
//                    ErrorCategory.InvalidOperation,
//                    true);
                throw new Exception(
                          "Unable to save XML report to the file '" +
                          path +
                          "'. " +
                          eCreateDocument.Message);
            }
        }
Ejemplo n.º 13
0
//        public static bool ImportTestStructure(string path)
//        {
//            bool result = false;
//            
//            
//            return result;
//        }
        
//        public static bool ExportTestStructure(string path)
//        {
//            bool result = false;
//            
//            
//            return result;
//        }
        #endregion Import/export test structure
        
        #region Search
        /// <summary>
        /// Performs parametrized search for Test Suites.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public static IOrderedEnumerable<ITestSuite> SearchForSuites(ISearchCmdletBaseDataObject cmdlet)
        {
            IOrderedEnumerable<ITestSuite> suites = null;
            // 20141107
            var testStatistics = new TestStatistics();
            
            // Filtering results
            
            // default result
            Func<ITestSuite, bool> query = suite => true;
            
//            System.Collections.Generic.List<Func<TestSuite, bool>> queriesList =
//                new List<Func<TestSuite, bool>>();
//            queriesList.Add(query);
            
            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains)) {
            // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query = suite => suite.Name.Contains(cmdlet.FilterNameContains);
                //queriesList.Add((suite => suite.Name.Contains(cmdlet.FilterNameContains)));
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains)) {
            // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query = suite => suite.Id.Contains(cmdlet.FilterIdContains);
                //queriesList.Add((suite => suite.Id.Contains(cmdlet.FilterIdContains)));
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains)) {
            // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = suite => suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);

                //query = suite =>
                //{
                //    return suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);

                //    /*
                //        if (suite.Description != null) {
                //            return suite.Description.Contains(cmdlet.FilterDescriptionContains);
                //        }
                //        return false;
                //        */
                //};

//                queriesList.Add((suite =>
//                    {
//                        if (suite.Description != null) {
//                            return suite.Description.Contains(cmdlet.FilterDescriptionContains);
//                        }
//                        return false;
//                    }));
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassed) {
                query = suite => suite.enStatus == TestSuiteStatuses.Passed;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.Passed));
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterFailed) {
                query = suite => suite.enStatus == TestSuiteStatuses.Failed;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.Failed));
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterNotTested) {
                query = suite => suite.enStatus == TestSuiteStatuses.NotTested;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.NotTested));
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassedWithBadSmell) {
                query = suite => suite.enStatus == TestSuiteStatuses.KnownIssue;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.KnownIssue));
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll) {
                query = suite => true;
            }
            if (cmdlet.FilterNone) {
                query = suite => false;
                //queriesList.Clear();
                //queriesList.Add(query);
            }
            
            // Ordering results
            
            // default result
            // 20140720
            // Func<TestSuite, object> ordering = suite => suite.Id;
            Func<ITestSuite, object> ordering = suite => suite.Id;
            
            if (cmdlet.OrderByTimeSpent) {
                ordering += suite => suite.Statistics.TimeSpent;
            } 
            if (cmdlet.OrderByName) {
                ordering += suite => suite.Name;
            } 
            if (cmdlet.OrderById) {
                ordering += suite => suite.Id;
            } 
            if (cmdlet.OrderByPassRate) {
                ordering += suite => {
                    //TestData.RefreshSuiteStatistics(suite);
                    // 20141107
                    // TestData.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return (suite.Statistics.Passed / suite.Statistics.All);
                };
            } 
            if (cmdlet.OrderByFailRate) {
                ordering += suite => {
                    //TestData.RefreshSuiteStatistics(suite);
                    // 20141107
                    // TestData.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return (suite.Statistics.Failed / suite.Statistics.All);
                };
            } 

//            cmdlet.WriteVerbose(cmdlet, "query = " + query);
//            cmdlet.WriteVerbose(cmdlet, "ordering = " + ordering);
            
            suites = 
                TestData.SearchTestSuite(
                    query,
                    //Combine<TestSuite, bool>((x, y) => x && y, queriesList.ToArray()),
                    ordering,
                    cmdlet.Descending);

            return suites;
        }
Ejemplo n.º 14
0
        public static IOrderedEnumerable <ITestResult> SearchForTestResultsPS(ISearchCmdletBaseDataObject dataObject)
        {
            var testResults = SearchForTestResults(dataObject);

            return(testResults.Any() ? testResults : null);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Performs parametrized search for Test Results.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public static IOrderedEnumerable <ITestResult> SearchForTestResults(ISearchCmdletBaseDataObject dataObject)
        {
            IOrderedEnumerable <ITestResult> testResults = null;

            // Filtering results

            // default result
            Func <ITestResult, bool> query = testResult => true;

            dataObject.FilterAll = false;

            if (!string.IsNullOrEmpty(dataObject.FilterNameContains))
            {
                // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query = testResult => testResult.Name != null && testResult.Name.Contains(dataObject.FilterNameContains);
            }

            //query = testResult =>
            //{
            //    return testResult.Name != null && testResult.Name.Contains(cmdlet.FilterNameContains);

            //    /*
            //        if (testResult.Name != null) {
            //            return testResult.Name.Contains(cmdlet.FilterNameContains);
            //        }
            //        return false;
            //        */
            //};

            // dataObject.FilterAll = false;
            else if (!string.IsNullOrEmpty(dataObject.FilterIdContains))
            {
                // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query = testResult => testResult.Id != null && testResult.Id.Contains(dataObject.FilterIdContains);
            }

            //query = testResult =>
            //{
            //    return testResult.Id != null && testResult.Id.Contains(cmdlet.FilterIdContains);

            //    /*
            //        if (testResult.Id != null) {
            //            return testResult.Id.Contains(cmdlet.FilterIdContains);
            //        }
            //        return false;
            //        */
            //};

            // dataObject.FilterAll = false;
            else if (!string.IsNullOrEmpty(dataObject.FilterDescriptionContains))
            {
                // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = testResult => testResult.Description != null && testResult.Description.Contains(dataObject.FilterDescriptionContains);
            }

            //query = testResult =>
            //{
            //    return testResult.Description != null && testResult.Description.Contains(cmdlet.FilterDescriptionContains);

            //    /*
            //        if (testResult.Description != null) {
            //            return testResult.Description.Contains(cmdlet.FilterDescriptionContains);
            //        }
            //        return false;
            //        */
            //};

            // dataObject.FilterAll = false;
            else if (dataObject.FilterPassed)
            {
                // 20150805
                // query = testResult => testResult.enStatus == TestResultStatuses.Passed;
                query = testResult => testResult.enStatus == TestStatuses.Passed;
            }
            // dataObject.FilterAll = false;
            else if (dataObject.FilterFailed)
            {
                // 20150805
                // query = testResult => testResult.enStatus == TestResultStatuses.Failed;
                query = testResult => testResult.enStatus == TestStatuses.Failed;
            }
            // dataObject.FilterAll = false;
            else if (dataObject.FilterNotTested)
            {
                // 20150805
                // query = testResult => testResult.enStatus == TestResultStatuses.NotTested;
                query = testResult => testResult.enStatus == TestStatuses.NotRun;
            }
            // dataObject.FilterAll = false;
            else if (dataObject.FilterPassedWithBadSmell)
            {
                // 20150805
                // query = testResult => testResult.enStatus == TestResultStatuses.KnownIssue;
                query = testResult => testResult.enStatus == TestStatuses.KnownIssue;
            }
            // dataObject.FilterAll = false;
            else if (dataObject.FilterOutAutomaticResults)
            {
                query = testResult => testResult.Origin != TestResultOrigins.Automatic;
            }
            // dataObject.FilterAll = false;
            else if (dataObject.FilterOutAutomaticAndTechnicalResults)
            {
                query = testResult => testResult.Origin != TestResultOrigins.Automatic && testResult.Origin != TestResultOrigins.Technical;
            }
            // dataObject.FilterAll = false;
            if (dataObject.FilterAll)
            {
                query = testResult => true;
                // 20140722
                dataObject.FilterAll = true;
            }
            if (dataObject.FilterNone)
            {
                query = testResult => false;
            }

            // Ordering results

            // default result
            // 20140720
            // Func<TestResult, object> ordering = testResult => testResult.Id;
            Func <ITestResult, object> ordering = testResult => testResult.Id;

            if (dataObject.OrderByTimeSpent)
            {
                ordering = testResult => testResult.TimeSpent;
            }
            else if (dataObject.OrderByDateTime)
            {
                ordering = testResult => testResult.Timestamp;
            }
            else if (dataObject.OrderByName)
            {
                ordering = testResult => testResult.Name;
            }
            else if (dataObject.OrderById)
            {
                ordering = testResult => testResult.Id;
            }

            testResults =
                TestData.SearchTestResult(
                    query,
                    ordering,
                    dataObject.Descending);

            return(testResults);
        }
Ejemplo n.º 16
0
        public static IOrderedEnumerable <ITestScenario> SearchForScenariosPS(ISearchCmdletBaseDataObject cmdlet)
        {
            var scenarios = SearchForScenarios(cmdlet);

            return(scenarios.Any() ? scenarios : null);
        }
Ejemplo n.º 17
0
 public static void ImportResultsFromJUnitXML(ISearchCmdletBaseDataObject cmdlet, string path)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 18
0
        /// <summary>
        /// Performs parametrized search for Test Suites.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <param name="suitesForSearch"></param>
        /// <returns></returns>
        public virtual IOrderedEnumerable <ITestSuite> SearchForSuites(ISearchCmdletBaseDataObject cmdlet, List <ITestSuite> suitesForSearch)
        {
            IOrderedEnumerable <ITestSuite> suitesFound = null;
            // 20141107
            // 20150925
            // var testStatistics = new TestStatistics();
            var testStatistics = ProxyFactory.Get <TestStatistics>();

            // Filtering results

            // default result
            Func <ITestSuite, bool> query = suite => true;

            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains))
            {
                query            = suite => suite.Name.Contains(cmdlet.FilterNameContains);
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains))
            {
                query            = suite => suite.Id.Contains(cmdlet.FilterIdContains);
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains))
            {
                query            = suite => suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassed)
            {
                // 20150805
                // query = suite => suite.enStatus == TestSuiteStatuses.Passed;
                query            = suite => suite.enStatus == TestStatuses.Passed;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterFailed)
            {
                // 20150805
                // query = suite => suite.enStatus == TestSuiteStatuses.Failed;
                query            = suite => suite.enStatus == TestStatuses.Failed;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterNotTested)
            {
                // 20150805
                // query = suite => suite.enStatus == TestSuiteStatuses.NotTested;
                query            = suite => suite.enStatus == TestStatuses.NotRun;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassedWithBadSmell)
            {
                // 20150805
                // query = suite => suite.enStatus == TestSuiteStatuses.KnownIssue;
                query            = suite => suite.enStatus == TestStatuses.KnownIssue;
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll)
            {
                query = suite => true;
            }
            if (cmdlet.FilterNone)
            {
                query = suite => false;
            }

            // Ordering results

            // default result
            Func <ITestSuite, object> ordering = suite => suite.Id;

            if (cmdlet.OrderByTimeSpent)
            {
                ordering += suite => suite.Statistics.TimeSpent;
            }
            if (cmdlet.OrderByName)
            {
                ordering += suite => suite.Name;
            }
            if (cmdlet.OrderById)
            {
                ordering += suite => suite.Id;
            }
            if (cmdlet.OrderByPassRate)
            {
                ordering += suite => {
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return(suite.Statistics.Passed / suite.Statistics.All);
                };
            }
            if (cmdlet.OrderByFailRate)
            {
                ordering += suite => {
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return(suite.Statistics.Failed / suite.Statistics.All);
                };
            }

            suitesFound = SearchTestSuite(
                suitesForSearch,
                query,
                //Combine<TestSuite, bool>((x, y) => x && y, queriesList.ToArray()),
                ordering,
                cmdlet.Descending);

            return(suitesFound);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Performs parametrized search for Test Results.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public static IOrderedEnumerable<ITestResult> SearchForTestResults(ISearchCmdletBaseDataObject dataObject)
        {
            IOrderedEnumerable<ITestResult> testResults = null;

            // Filtering results
            
            // default result
            Func<ITestResult, bool> query = testResult => true;
            
            dataObject.FilterAll = false;
            
            if (!string.IsNullOrEmpty(dataObject.FilterNameContains))
            // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query = testResult => testResult.Name != null && testResult.Name.Contains(dataObject.FilterNameContains);

                //query = testResult =>
                //{
                //    return testResult.Name != null && testResult.Name.Contains(cmdlet.FilterNameContains);

                //    /*
                //        if (testResult.Name != null) {
                //            return testResult.Name.Contains(cmdlet.FilterNameContains);
                //        }
                //        return false;
                //        */
                //};

                // dataObject.FilterAll = false;
            else if (!string.IsNullOrEmpty(dataObject.FilterIdContains))
            // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query = testResult => testResult.Id != null && testResult.Id.Contains(dataObject.FilterIdContains);

                //query = testResult =>
                //{
                //    return testResult.Id != null && testResult.Id.Contains(cmdlet.FilterIdContains);

                //    /*
                //        if (testResult.Id != null) {
                //            return testResult.Id.Contains(cmdlet.FilterIdContains);
                //        }
                //        return false;
                //        */
                //};

                // dataObject.FilterAll = false;
            else if (!string.IsNullOrEmpty(dataObject.FilterDescriptionContains))
            // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = testResult => testResult.Description != null && testResult.Description.Contains(dataObject.FilterDescriptionContains);

                //query = testResult =>
                //{
                //    return testResult.Description != null && testResult.Description.Contains(cmdlet.FilterDescriptionContains);

                //    /*
                //        if (testResult.Description != null) {
                //            return testResult.Description.Contains(cmdlet.FilterDescriptionContains);
                //        }
                //        return false;
                //        */
                //};

                // dataObject.FilterAll = false;
            else if (dataObject.FilterPassed)
                query = testResult => testResult.enStatus == TestResultStatuses.Passed;
                // dataObject.FilterAll = false;
            else if (dataObject.FilterFailed)
                query = testResult => testResult.enStatus == TestResultStatuses.Failed;
                // dataObject.FilterAll = false;
            else if (dataObject.FilterNotTested)
                query = testResult => testResult.enStatus == TestResultStatuses.NotTested;
                // dataObject.FilterAll = false;
            else if (dataObject.FilterPassedWithBadSmell)
                query = testResult => testResult.enStatus == TestResultStatuses.KnownIssue;
                // dataObject.FilterAll = false;
            else if (dataObject.FilterOutAutomaticResults)
                query = testResult => testResult.Origin != TestResultOrigins.Automatic;
                // dataObject.FilterAll = false;
            else if (dataObject.FilterOutAutomaticAndTechnicalResults)
                query = testResult => testResult.Origin != TestResultOrigins.Automatic && testResult.Origin != TestResultOrigins.Technical;
            // dataObject.FilterAll = false;
            if (dataObject.FilterAll) {
                query = testResult => true;
                // 20140722
                dataObject.FilterAll = true;
            }
            if (dataObject.FilterNone) {
                query = testResult => false;
            }
            
            // Ordering results
            
            // default result
            // 20140720
            // Func<TestResult, object> ordering = testResult => testResult.Id;
            Func<ITestResult, object> ordering = testResult => testResult.Id;
            
            if (dataObject.OrderByTimeSpent)
                ordering = testResult => testResult.TimeSpent;
            else if (dataObject.OrderByDateTime)
                ordering = testResult => testResult.Timestamp;
            else if (dataObject.OrderByName)
                ordering = testResult => testResult.Name;
            else if (dataObject.OrderById)
                ordering = testResult => testResult.Id;
            
            testResults = 
                TestData.SearchTestResult(
                    query,
                    ordering,
                    dataObject.Descending);

            return testResults;
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Performs parametrized search for Test Results.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public IOrderedEnumerable<ITestResult> SearchForTestResults(ISearchCmdletBaseDataObject dataObject, List<ITestSuite> suitesForSearch)
        {
            IOrderedEnumerable<ITestResult> testResults = null;

            // Filtering results
            
            // default result
            Func<ITestResult, bool> query = testResult => true;
            
            dataObject.FilterAll = false;
            
            if (!string.IsNullOrEmpty(dataObject.FilterNameContains))
                query = testResult => testResult.Name != null && testResult.Name.Contains(dataObject.FilterNameContains);
            else if (!string.IsNullOrEmpty(dataObject.FilterIdContains))
                query = testResult => testResult.Id != null && testResult.Id.Contains(dataObject.FilterIdContains);
            else if (!string.IsNullOrEmpty(dataObject.FilterDescriptionContains))
                query = testResult => testResult.Description != null && testResult.Description.Contains(dataObject.FilterDescriptionContains);
            else if (dataObject.FilterPassed)
                query = testResult => testResult.enStatus == TestResultStatuses.Passed;
            else if (dataObject.FilterFailed)
                query = testResult => testResult.enStatus == TestResultStatuses.Failed;
            else if (dataObject.FilterNotTested)
                query = testResult => testResult.enStatus == TestResultStatuses.NotTested;
            else if (dataObject.FilterPassedWithBadSmell)
                query = testResult => testResult.enStatus == TestResultStatuses.KnownIssue;
            else if (dataObject.FilterOutAutomaticResults)
                query = testResult => testResult.Origin != TestResultOrigins.Automatic;
            else if (dataObject.FilterOutAutomaticAndTechnicalResults)
                query = testResult => testResult.Origin != TestResultOrigins.Automatic && testResult.Origin != TestResultOrigins.Technical;
            if (dataObject.FilterAll) {
                query = testResult => true;
                dataObject.FilterAll = true;
            }
            if (dataObject.FilterNone) {
                query = testResult => false;
            }
            
            // Ordering results
            
            // default result
            Func<ITestResult, object> ordering = testResult => testResult.Id;
            
            if (dataObject.OrderByTimeSpent)
                ordering = testResult => testResult.TimeSpent;
            else if (dataObject.OrderByDateTime)
                ordering = testResult => testResult.Timestamp;
            else if (dataObject.OrderByName)
                ordering = testResult => testResult.Name;
            else if (dataObject.OrderById)
                ordering = testResult => testResult.Id;
            
            testResults = 
                SearchTestResult(
                    suitesForSearch,
                    query,
                    ordering,
                    dataObject.Descending);

            return testResults;
        }
Ejemplo n.º 21
0
 public static IOrderedEnumerable<ITestSuite> SearchForSuitesPS(ISearchCmdletBaseDataObject cmdlet)
 {
     IOrderedEnumerable<ITestSuite> suites = SearchForSuites(cmdlet);
     return suites.Any() ? suites : null;
 }
Ejemplo n.º 22
0
 public static IOrderedEnumerable<ITestResult> SearchForTestResultsPS(ISearchCmdletBaseDataObject dataObject)
 {
     var testResults = SearchForTestResults(dataObject);
     return testResults.Any() ? testResults : null;
 }
Ejemplo n.º 23
0
//        public static Func<TInput, bool> Combine<TInput, Tout>
//            (Func<bool, bool, bool> aggregator,
//            params Func<TInput, bool>[] delegates) {
//
//            // delegates[0] provides the initial value
//            return t => delegates.Skip(1).Aggregate(delegates[0](t), aggregator);
//        }
//
////        public static Func<T, bool> And<T>(params Func<T, bool>[] predicates) {
////            return Combine<T, bool>((x, y) => x && y, predicates);
////        }
        
        /// <summary>
        /// Performs parametrized search for Test Scenarios.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        // 20140720
        // public static IOrderedEnumerable<TestScenario> SearchForScenarios(SearchCmdletBase cmdlet)
        public static IOrderedEnumerable<ITestScenario> SearchForScenarios(ISearchCmdletBaseDataObject cmdlet)
        {
            // 20140720
            // IOrderedEnumerable<TestScenario> scenarios = null;
            IOrderedEnumerable<ITestScenario> scenarios = null;
            
            // Filtering results
            
            // default result
            // 20140720
            // Func<TestScenario, bool> query = scenario => true;
            Func<ITestScenario, bool> query = scenario => true;
            
            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains)) {
            // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query = scenario => scenario.Name.Contains(cmdlet.FilterNameContains);
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains)) {
            // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query = scenario => scenario.Id.Contains(cmdlet.FilterIdContains);
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains)) {
            // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = scenario => scenario.Description != null && scenario.Description.Contains(cmdlet.FilterDescriptionContains);

                //query = scenario =>
                //{
                //    return scenario.Description != null && scenario.Description.Contains(cmdlet.FilterDescriptionContains);

                //    /*
                //        if (scenario.Description != null) {
                //            return scenario.Description.Contains(cmdlet.FilterDescriptionContains);
                //        }
                //        return false;
                //        */
                //};
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassed) {
                query = scenario => scenario.enStatus == TestScenarioStatuses.Passed;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterFailed) {
                query = scenario => scenario.enStatus == TestScenarioStatuses.Failed;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterNotTested) {
                query = scenario => scenario.enStatus == TestScenarioStatuses.NotTested;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassedWithBadSmell) {
                query = scenario => scenario.enStatus == TestScenarioStatuses.KnownIssue;
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll) {
                query = scenario => true;
            }
            if (cmdlet.FilterNone) {
                query = scenario => false;
            }
            
            // Ordering results
            
            // default result
            // 20140720
            // Func<TestScenario, object> ordering = scenario => scenario.Id;
            Func<ITestScenario, object> ordering = scenario => scenario.Id;
            
            if (cmdlet.OrderByTimeSpent) {
                ordering = scenario => scenario.Statistics.TimeSpent;
            } else if (cmdlet.OrderByName) {
                ordering = scenario => scenario.Name;
            } else if (cmdlet.OrderById) {
                ordering = scenario => scenario.Id;
            } else if (cmdlet.OrderByPassRate) {
                ordering = scenario => 
                    scenario.Statistics.Passed / 
                        (scenario.Statistics.Passed + scenario.Statistics.Failed + 
                        scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            } else if (cmdlet.OrderByFailRate) {
                ordering = scenario => 
                    scenario.Statistics.Failed / 
                        (scenario.Statistics.Passed + scenario.Statistics.Failed + 
                        scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            }
            
//            cmdlet.WriteVerbose(cmdlet, "query = " + query);
//            cmdlet.WriteVerbose(cmdlet, "ordering = " + ordering);
            
            scenarios = 
                TestData.SearchTestScenario(
                    query,
                    ordering,
                    cmdlet.Descending);
            
            return scenarios;
        }
Ejemplo n.º 24
0
//        public static Func<TInput, bool> Combine<TInput, Tout>
//            (Func<bool, bool, bool> aggregator,
//            params Func<TInput, bool>[] delegates) {
//
//            // delegates[0] provides the initial value
//            return t => delegates.Skip(1).Aggregate(delegates[0](t), aggregator);
//        }
//
////        public static Func<T, bool> And<T>(params Func<T, bool>[] predicates) {
////            return Combine<T, bool>((x, y) => x && y, predicates);
////        }

        /// <summary>
        /// Performs parametrized search for Test Scenarios.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        // 20140720
        // public static IOrderedEnumerable<TestScenario> SearchForScenarios(SearchCmdletBase cmdlet)
        public static IOrderedEnumerable <ITestScenario> SearchForScenarios(ISearchCmdletBaseDataObject cmdlet)
        {
            // 20140720
            // IOrderedEnumerable<TestScenario> scenarios = null;
            IOrderedEnumerable <ITestScenario> scenarios = null;

            // Filtering results

            // default result
            // 20140720
            // Func<TestScenario, bool> query = scenario => true;
            Func <ITestScenario, bool> query = scenario => true;

            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains))
            {
                // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query            = scenario => scenario.Name.Contains(cmdlet.FilterNameContains);
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains))
            {
                // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query            = scenario => scenario.Id.Contains(cmdlet.FilterIdContains);
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains))
            {
                // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = scenario => scenario.Description != null && scenario.Description.Contains(cmdlet.FilterDescriptionContains);

                //query = scenario =>
                //{
                //    return scenario.Description != null && scenario.Description.Contains(cmdlet.FilterDescriptionContains);

                //    /*
                //        if (scenario.Description != null) {
                //            return scenario.Description.Contains(cmdlet.FilterDescriptionContains);
                //        }
                //        return false;
                //        */
                //};
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassed)
            {
                query            = scenario => scenario.enStatus == TestStatuses.Passed;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterFailed)
            {
                query            = scenario => scenario.enStatus == TestStatuses.Failed;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterNotTested)
            {
                query            = scenario => scenario.enStatus == TestStatuses.NotRun;
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassedWithBadSmell)
            {
                query            = scenario => scenario.enStatus == TestStatuses.KnownIssue;
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll)
            {
                query = scenario => true;
            }
            if (cmdlet.FilterNone)
            {
                query = scenario => false;
            }

            // Ordering results

            // default result
            // 20140720
            // Func<TestScenario, object> ordering = scenario => scenario.Id;
            Func <ITestScenario, object> ordering = scenario => scenario.Id;

            if (cmdlet.OrderByTimeSpent)
            {
                ordering = scenario => scenario.Statistics.TimeSpent;
            }
            else if (cmdlet.OrderByName)
            {
                ordering = scenario => scenario.Name;
            }
            else if (cmdlet.OrderById)
            {
                ordering = scenario => scenario.Id;
            }
            else if (cmdlet.OrderByPassRate)
            {
                ordering = scenario =>
                           scenario.Statistics.Passed /
                           (scenario.Statistics.Passed + scenario.Statistics.Failed +
                            scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            }
            else if (cmdlet.OrderByFailRate)
            {
                ordering = scenario =>
                           scenario.Statistics.Failed /
                           (scenario.Statistics.Passed + scenario.Statistics.Failed +
                            scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            }

//            cmdlet.WriteVerbose(cmdlet, "query = " + query);
//            cmdlet.WriteVerbose(cmdlet, "ordering = " + ordering);

            scenarios =
                TestData.SearchTestScenario(
                    query,
                    ordering,
                    cmdlet.Descending);

            return(scenarios);
        }
Ejemplo n.º 25
0
 public static IOrderedEnumerable<ITestScenario> SearchForScenariosPS(ISearchCmdletBaseDataObject cmdlet)
 {
     var scenarios = SearchForScenarios(cmdlet);
     return scenarios.Any() ? scenarios : null;
 }
Ejemplo n.º 26
0
        public static void ExportResultsToJUnitXML(ISearchCmdletBaseDataObject cmdlet, string path)
        {
            try {

                var gathered = new GatherTestResultsCollections();
                gathered.GatherCollections(cmdlet);
                
                var testResultsExporter = new TestResultsExporter();
                var suitesElement = testResultsExporter.CreateSuitesXElementWithParameters(
                    gathered.TestSuites,
                    gathered.TestScenarios,
                    gathered.TestResults,
                    (new XMLElementsJUnitStruct()));
                
                var document = new XDocument();
                document.Add(suitesElement);
                document.Save(path);
            }
            catch (Exception eCreateDocument) {
                // 20140720
//                cmdlet.WriteError(
//                    cmdlet,
//                    "Unable to save XML report to the file '" +
//                    path +
//                    "'. " + 
//                    eCreateDocument.Message,
//                    "FailedToSaveReport",
//                    ErrorCategory.InvalidOperation,
//                    true);
                throw new Exception(
                    "Unable to save XML report to the file '" +
                    path +
                    "'. " + 
                    eCreateDocument.Message);
            }
        }
Ejemplo n.º 27
0
 /// <summary>
 /// Performs parametrized search for Test Scenarios.
 /// </summary>
 /// <param name="cmdlet"></param>
 /// <returns></returns>
 public IOrderedEnumerable<ITestScenario> SearchForScenarios(ISearchCmdletBaseDataObject searchCriteria, List<ITestSuite> suitesForSearch)
 {
     IOrderedEnumerable<ITestScenario> scenarios = null;
     
     // Filtering results
     
     // default result
     Func<ITestScenario, bool> query = scenario => true;
     
     if (!string.IsNullOrEmpty(searchCriteria.FilterNameContains)) {
         query = scenario => scenario.Name.Contains(searchCriteria.FilterNameContains);
         searchCriteria.FilterAll = false;
     } else if (!string.IsNullOrEmpty(searchCriteria.FilterIdContains)) {
         query = scenario => scenario.Id.Contains(searchCriteria.FilterIdContains);
         searchCriteria.FilterAll = false;
     } else if (!string.IsNullOrEmpty(searchCriteria.FilterDescriptionContains)) {
         query = scenario => scenario.Description != null && scenario.Description.Contains(searchCriteria.FilterDescriptionContains);
         searchCriteria.FilterAll = false;
     } else if (searchCriteria.FilterPassed) {
         query = scenario => scenario.enStatus == TestScenarioStatuses.Passed;
         searchCriteria.FilterAll = false;
     } else if (searchCriteria.FilterFailed) {
         query = scenario => scenario.enStatus == TestScenarioStatuses.Failed;
         searchCriteria.FilterAll = false;
     } else if (searchCriteria.FilterNotTested) {
         query = scenario => scenario.enStatus == TestScenarioStatuses.NotTested;
         searchCriteria.FilterAll = false;
     } else if (searchCriteria.FilterPassedWithBadSmell) {
         query = scenario => scenario.enStatus == TestScenarioStatuses.KnownIssue;
         searchCriteria.FilterAll = false;
     }
     if (searchCriteria.FilterAll) {
         query = scenario => true;
     }
     if (searchCriteria.FilterNone) {
         query = scenario => false;
     }
     
     // Ordering results
     
     // default result
     Func<ITestScenario, object> ordering = scenario => scenario.Id;
     
     if (searchCriteria.OrderByTimeSpent) {
         ordering = scenario => scenario.Statistics.TimeSpent;
     } else if (searchCriteria.OrderByName) {
         ordering = scenario => scenario.Name;
     } else if (searchCriteria.OrderById) {
         ordering = scenario => scenario.Id;
     } else if (searchCriteria.OrderByPassRate) {
         ordering = scenario => 
             scenario.Statistics.Passed / 
                 (scenario.Statistics.Passed + scenario.Statistics.Failed + 
                 scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
     } else if (searchCriteria.OrderByFailRate) {
         ordering = scenario => 
             scenario.Statistics.Failed / 
                 (scenario.Statistics.Passed + scenario.Statistics.Failed + 
                 scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
     }
     
     scenarios = 
         SearchTestScenario(
         suitesForSearch,
         query,
         ordering,
         searchCriteria.Descending);
     
     return scenarios;
 }
Ejemplo n.º 28
0
 public static void ImportResultsFromJUnitXML(ISearchCmdletBaseDataObject cmdlet, string path)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 29
0
        /// <summary>
        /// Performs parametrized search for Test Suites.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public IOrderedEnumerable<ITestSuite> SearchForSuites(ISearchCmdletBaseDataObject cmdlet, List<ITestSuite> suitesForSearch)
        {
            IOrderedEnumerable<ITestSuite> suitesFound = null;
            // 20141107
            var testStatistics = new TestStatistics();
            
            // Filtering results
            
            // default result
            Func<ITestSuite, bool> query = suite => true;
            
            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains)) {
                query = suite => suite.Name.Contains(cmdlet.FilterNameContains);
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains)) {
                query = suite => suite.Id.Contains(cmdlet.FilterIdContains);
                cmdlet.FilterAll = false;
            } else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains)) {
                query = suite => suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassed) {
                query = suite => suite.enStatus == TestSuiteStatuses.Passed;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterFailed) {
                query = suite => suite.enStatus == TestSuiteStatuses.Failed;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterNotTested) {
                query = suite => suite.enStatus == TestSuiteStatuses.NotTested;
                cmdlet.FilterAll = false;
            } else if (cmdlet.FilterPassedWithBadSmell) {
                query = suite => suite.enStatus == TestSuiteStatuses.KnownIssue;
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll) {
                query = suite => true;
            }
            if (cmdlet.FilterNone) {
                query = suite => false;
            }
            
            // Ordering results
            
            // default result
            Func<ITestSuite, object> ordering = suite => suite.Id;
            
            if (cmdlet.OrderByTimeSpent) {
                ordering += suite => suite.Statistics.TimeSpent;
            } 
            if (cmdlet.OrderByName) {
                ordering += suite => suite.Name;
            } 
            if (cmdlet.OrderById) {
                ordering += suite => suite.Id;
            } 
            if (cmdlet.OrderByPassRate) {
                ordering += suite => {
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return (suite.Statistics.Passed / suite.Statistics.All);
                };
            } 
            if (cmdlet.OrderByFailRate) {
                ordering += suite => {
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return (suite.Statistics.Failed / suite.Statistics.All);
                };
            } 
            
            suitesFound = SearchTestSuite(
                suitesForSearch,
                query,
                    //Combine<TestSuite, bool>((x, y) => x && y, queriesList.ToArray()),
                ordering,
                cmdlet.Descending);

            return suitesFound;
        }
Ejemplo n.º 30
0
//        public static bool ImportTestStructure(string path)
//        {
//            bool result = false;
//
//
//            return result;
//        }

//        public static bool ExportTestStructure(string path)
//        {
//            bool result = false;
//
//
//            return result;
//        }
        #endregion Import/export test structure

        #region Search
        /// <summary>
        /// Performs parametrized search for Test Suites.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public static IOrderedEnumerable <ITestSuite> SearchForSuites(ISearchCmdletBaseDataObject cmdlet)
        {
            IOrderedEnumerable <ITestSuite> suites = null;
            // 20141107
            // 20150925
            // var testStatistics = new TestStatistics();
            var testStatistics = ProxyFactory.Get <TestStatistics>();

            // Filtering results

            // default result
            Func <ITestSuite, bool> query = suite => true;

//            System.Collections.Generic.List<Func<TestSuite, bool>> queriesList =
//                new List<Func<TestSuite, bool>>();
//            queriesList.Add(query);

            if (!string.IsNullOrEmpty(cmdlet.FilterNameContains))
            {
                // if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
                query = suite => suite.Name.Contains(cmdlet.FilterNameContains);
                //queriesList.Add((suite => suite.Name.Contains(cmdlet.FilterNameContains)));
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterIdContains))
            {
                // } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
                query = suite => suite.Id.Contains(cmdlet.FilterIdContains);
                //queriesList.Add((suite => suite.Id.Contains(cmdlet.FilterIdContains)));
                cmdlet.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(cmdlet.FilterDescriptionContains))
            {
                // } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
                query = suite => suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);

                //query = suite =>
                //{
                //    return suite.Description != null && suite.Description.Contains(cmdlet.FilterDescriptionContains);

                //    /*
                //        if (suite.Description != null) {
                //            return suite.Description.Contains(cmdlet.FilterDescriptionContains);
                //        }
                //        return false;
                //        */
                //};

//                queriesList.Add((suite =>
//                    {
//                        if (suite.Description != null) {
//                            return suite.Description.Contains(cmdlet.FilterDescriptionContains);
//                        }
//                        return false;
//                    }));
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassed)
            {
                query = suite => suite.enStatus == TestStatuses.Passed;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.Passed));
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterFailed)
            {
                query = suite => suite.enStatus == TestStatuses.Failed;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.Failed));
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterNotTested)
            {
                query = suite => suite.enStatus == TestStatuses.NotRun;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.NotTested));
                cmdlet.FilterAll = false;
            }
            else if (cmdlet.FilterPassedWithBadSmell)
            {
                query = suite => suite.enStatus == TestStatuses.KnownIssue;
                //queriesList.Add((suite => suite.enStatus == TestSuiteStatuses.KnownIssue));
                cmdlet.FilterAll = false;
            }
            if (cmdlet.FilterAll)
            {
                query = suite => true;
            }
            if (cmdlet.FilterNone)
            {
                query = suite => false;
                //queriesList.Clear();
                //queriesList.Add(query);
            }

            // Ordering results

            // default result
            // 20140720
            // Func<TestSuite, object> ordering = suite => suite.Id;
            Func <ITestSuite, object> ordering = suite => suite.Id;

            if (cmdlet.OrderByTimeSpent)
            {
                ordering += suite => suite.Statistics.TimeSpent;
            }
            if (cmdlet.OrderByName)
            {
                ordering += suite => suite.Name;
            }
            if (cmdlet.OrderById)
            {
                ordering += suite => suite.Id;
            }
            if (cmdlet.OrderByPassRate)
            {
                ordering += suite => {
                    //TestData.RefreshSuiteStatistics(suite);
                    // 20141107
                    // TestData.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return(suite.Statistics.Passed / suite.Statistics.All);
                };
            }
            if (cmdlet.OrderByFailRate)
            {
                ordering += suite => {
                    //TestData.RefreshSuiteStatistics(suite);
                    // 20141107
                    // TestData.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    testStatistics.RefreshSuiteStatistics(suite, cmdlet.FilterOutAutomaticResults);
                    return(suite.Statistics.Failed / suite.Statistics.All);
                };
            }

//            cmdlet.WriteVerbose(cmdlet, "query = " + query);
//            cmdlet.WriteVerbose(cmdlet, "ordering = " + ordering);

            suites =
                TestData.SearchTestSuite(
                    query,
                    //Combine<TestSuite, bool>((x, y) => x && y, queriesList.ToArray()),
                    ordering,
                    cmdlet.Descending);

            return(suites);
        }
Ejemplo n.º 31
0
        public static IOrderedEnumerable <ITestSuite> SearchForSuitesPS(ISearchCmdletBaseDataObject cmdlet)
        {
            IOrderedEnumerable <ITestSuite> suites = SearchForSuites(cmdlet);

            return(suites.Any() ? suites : null);
        }
Ejemplo n.º 32
0
        /// <summary>
        /// Performs parametrized search for Test Scenarios.
        /// </summary>
        /// <param name="cmdlet"></param>
        /// <returns></returns>
        public virtual IOrderedEnumerable <ITestScenario> SearchForScenarios(ISearchCmdletBaseDataObject searchCriteria, List <ITestSuite> suitesForSearch)
        {
            IOrderedEnumerable <ITestScenario> scenarios = null;

            // Filtering results

            // default result
            Func <ITestScenario, bool> query = scenario => true;

            if (!string.IsNullOrEmpty(searchCriteria.FilterNameContains))
            {
                query = scenario => scenario.Name.Contains(searchCriteria.FilterNameContains);
                searchCriteria.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(searchCriteria.FilterIdContains))
            {
                query = scenario => scenario.Id.Contains(searchCriteria.FilterIdContains);
                searchCriteria.FilterAll = false;
            }
            else if (!string.IsNullOrEmpty(searchCriteria.FilterDescriptionContains))
            {
                query = scenario => scenario.Description != null && scenario.Description.Contains(searchCriteria.FilterDescriptionContains);
                searchCriteria.FilterAll = false;
            }
            else if (searchCriteria.FilterPassed)
            {
                // 20150805
                // query = scenario => scenario.enStatus == TestScenarioStatuses.Passed;
                query = scenario => scenario.enStatus == TestStatuses.Passed;
                searchCriteria.FilterAll = false;
            }
            else if (searchCriteria.FilterFailed)
            {
                // 20150805
                // query = scenario => scenario.enStatus == TestScenarioStatuses.Failed;
                query = scenario => scenario.enStatus == TestStatuses.Failed;
                searchCriteria.FilterAll = false;
            }
            else if (searchCriteria.FilterNotTested)
            {
                // 20150805
                // query = scenario => scenario.enStatus == TestScenarioStatuses.NotTested;
                query = scenario => scenario.enStatus == TestStatuses.NotRun;
                searchCriteria.FilterAll = false;
            }
            else if (searchCriteria.FilterPassedWithBadSmell)
            {
                // 20150805
                // query = scenario => scenario.enStatus == TestScenarioStatuses.KnownIssue;
                query = scenario => scenario.enStatus == TestStatuses.KnownIssue;
                searchCriteria.FilterAll = false;
            }
            if (searchCriteria.FilterAll)
            {
                query = scenario => true;
            }
            if (searchCriteria.FilterNone)
            {
                query = scenario => false;
            }

            // Ordering results

            // default result
            Func <ITestScenario, object> ordering = scenario => scenario.Id;

            if (searchCriteria.OrderByTimeSpent)
            {
                ordering = scenario => scenario.Statistics.TimeSpent;
            }
            else if (searchCriteria.OrderByName)
            {
                ordering = scenario => scenario.Name;
            }
            else if (searchCriteria.OrderById)
            {
                ordering = scenario => scenario.Id;
            }
            else if (searchCriteria.OrderByPassRate)
            {
                ordering = scenario =>
                           scenario.Statistics.Passed /
                           (scenario.Statistics.Passed + scenario.Statistics.Failed +
                            scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            }
            else if (searchCriteria.OrderByFailRate)
            {
                ordering = scenario =>
                           scenario.Statistics.Failed /
                           (scenario.Statistics.Passed + scenario.Statistics.Failed +
                            scenario.Statistics.PassedButWithBadSmell + scenario.Statistics.NotTested);
            }

            scenarios =
                SearchTestScenario(
                    suitesForSearch,
                    query,
                    ordering,
                    searchCriteria.Descending);

            return(scenarios);
        }