private bool AllTestCasesOfExecutableAreRun()
        {
            if (!_testCasesToRun.Any())
            {
                return(true);
            }

            TestCaseMetaDataProperty metaData = _testCasesToRun.First().Properties
                                                .OfType <TestCaseMetaDataProperty>()
                                                .SingleOrDefault();

            if (metaData == null)
            {
                throw new Exception($"Test does not have meta data: {_testCasesToRun.First()}");
            }

            return(_testCasesToRun.Count == metaData.NrOfTestCasesInExecutable);
        }
        private List <string> GetSuitesRunningAllTests()
        {
            var suitesRunningAllTests = new List <string>();

            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (string suite in GetAllSuitesOfTestCasesToRun())
            {
                List <TestCase>          allMatchingTestCasesToBeRun = GetAllMatchingTestCases(_testCasesToRun, suite);
                TestCaseMetaDataProperty metaData = allMatchingTestCasesToBeRun.First().Properties
                                                    .OfType <TestCaseMetaDataProperty>()
                                                    .SingleOrDefault();
                if (metaData == null)
                {
                    throw new Exception($"Test does not have meta data: {allMatchingTestCasesToBeRun.First()}");
                }

                if (allMatchingTestCasesToBeRun.Count == metaData.NrOfTestCasesInSuite)
                {
                    suitesRunningAllTests.Add(suite);
                }
            }
            return(suitesRunningAllTests);
        }