/// <summary>
        /// Sets up a fake Visual Studio environment consisting of a solution with 1 test project whose
        /// primary output is the specified construction-time source and the respective code file sources.
        /// </summary>
        private void SetUpSolution()
        {
            IList <string> sources = this.SourceFileResourcePaths.Select(source => source.Path).ToList();

            IVisualStudio vs = new FakeVisualStudioInstanceBuilder().
                               Solution(
                new FakeSolutionBuilder().
                Name("SampleSolution").
                Project(
                    new FakeProjectBuilder().
                    Name("SampleProject").
                    PrimaryOutput(this.Source).
                    Sources(sources)
                    )
                ).
                               Build();

            this.Provider = new DummyVSProvider(vs);
        }
        /// <summary>
        /// Sets up a fake Visual Studio environment consisting of a solution with 1 test project whose
        /// primary output is the specified construction-time source and the respective code file sources.
        /// </summary>
        private void SetUpSolution()
        {
            IList<string> sources = this.SourceFileResourcePaths.Select(source => source.TempSourcePath).ToList();

            IVisualStudio vs = new FakeVisualStudioInstanceBuilder().
                Solution(
                    new FakeSolutionBuilder().
                        Name("SampleSolution").
                        Project(
                            new FakeProjectBuilder().
                                Name("SampleProject").
                                PrimaryOutput(this.Source).
                                Sources(sources)
                        )
                ).
                Build();

            this.Provider = new DummyVSProvider(vs);
        }
        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.TempSourcePath,
                                                boostFixtureTestCaseCodeFile.TempSourcePath
                                            })
                            ).
                            Project(
                                new FakeProjectBuilder().
                                    Name("SampleProject").
                                    PrimaryOutput(boostUnitTestSampleSource).
                                    Sources(
                                            new List<string>()
                                            {
                                                boostUnitTestSampleSourceCodeFile.TempSourcePath,
                                            })
                            )
                    ).Build();

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

                AssertBoostFixtureTestSuiteTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestSuiteCodeFile.TempSourcePath);
                AssertBoostFixtureTestCaseTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestCaseCodeFile.TempSourcePath);
                AssertBoostUnitTestSampleTestDetails(vsTests, boostUnitTestSampleSource, boostUnitTestSampleSourceCodeFile.TempSourcePath);
            }
        }