public void DiscoverTestsFromMultipleSources()
        {
            const string boostFixtureTestSuiteSource = "BoostFixtureTestSuite.boostd.exe";
            const string boostUnitTestSampleSource   = "BoostUnitTestSample.boostd.exe";

            using (DummySourceFile boostFixtureTestSuiteCodeFile = new DummySourceFile(BoostFixtureTestSuite))
                using (DummySourceFile boostFixtureTestCaseCodeFile = new DummySourceFile(BoostFixtureTestCase))
                    using (DummySourceFile boostUnitTestSampleSourceCodeFile = new DummySourceFile(BoostUnitTestSample))
                    {
                        IVisualStudio vs = new FakeVisualStudioInstanceBuilder().
                                           Solution(
                            new FakeSolutionBuilder().
                            Name("SampleSolution").
                            Project(
                                new FakeProjectBuilder().
                                Name("FixtureSampleProject").
                                PrimaryOutput(boostFixtureTestSuiteSource).
                                Sources(
                                    new List <string>()
                        {
                            boostFixtureTestSuiteCodeFile.Path,
                            boostFixtureTestCaseCodeFile.Path
                        })
                                ).
                            Project(
                                new FakeProjectBuilder().
                                Name("SampleProject").
                                PrimaryOutput(boostUnitTestSampleSource).
                                Sources(
                                    new List <string>()
                        {
                            boostUnitTestSampleSourceCodeFile.Path,
                        })
                                )
                            ).Build();

                        IEnumerable <VSTestCase> vsTests = Discover(new DummyVSProvider(vs), new string[] { boostFixtureTestSuiteSource, boostUnitTestSampleSource });
                        Assert.That(vsTests.Count(), Is.EqualTo(17));

                        AssertBoostFixtureTestSuiteTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestSuiteCodeFile.Path);
                        AssertBoostFixtureTestCaseTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestCaseCodeFile.Path);
                        AssertBoostUnitTestSampleTestDetails(vsTests, boostUnitTestSampleSource, boostUnitTestSampleSourceCodeFile.Path);
                    }
        }
        private void AssertBoostUnitTestSampleRequiringUseOfFilters(IEnumerable <VSTestCase> tests, DummySolution solution)
        {
            DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.Path.EndsWith(BoostUnitTestSampleRequiringUseOfFilters));

            AssertBoostUnitTestSampleRequiringUseOfFilters(tests, solution.Source, codeFile.Path);
        }
        /// <summary>
        /// Asserts test details for tests contained within the "BoostFixtureTestSuite.cpp" source file
        /// </summary>
        /// <param name="tests">The discovered test case enumeration</param>
        /// <param name="solution">The dummy solution which contains a project referencing "BoostFixtureTestSuite.cpp"</param>
        private void AssertBoostFixtureTestSuiteTestDetails(IEnumerable <VSTestCase> tests, DummySolution solution)
        {
            DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.Path.EndsWith(BoostFixtureTestSuite));

            AssertBoostFixtureTestSuiteTestDetails(tests, solution.Source, codeFile.Path);
        }