/// <summary>
        /// Applies the discovery procedure over the provided sources
        /// </summary>
        /// <param name="provider">An IVisualStudioInstanceProvider instance</param>
        /// <param name="sources">The sources which to discover tests from</param>
        /// <param name="context">The IDiscoveryContext to use</param>
        /// <returns>An enumeration of discovered test cases</returns>
        private IEnumerable <VSTestCase> Discover(IVisualStudioInstanceProvider provider, IEnumerable <string> sources, IDiscoveryContext context)
        {
            DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink();

            IBoostTestDiscoverer discoverer = new SourceCodeDiscoverer(provider);

            discoverer.DiscoverTests(sources, context, sink);

            return(sink.Tests);
        }
        /// <summary>
        /// Applies the discovery process over the provided DummySolution
        /// </summary>
        /// <param name="solution">The dummy solution on which to apply test discovery</param>
        /// <returns>The list of tests which were discovered from the dummy solution</returns>
        private IList <TestCase> DiscoverTests(DummySolution solution)
        {
            SourceCodeDiscoverer discoverer = new SourceCodeDiscoverer(solution.Provider);

            DefaultTestContext           context       = new DefaultTestContext();
            DefaultTestCaseDiscoverySink discoverySink = new DefaultTestCaseDiscoverySink();

            discoverer.DiscoverTests(new[] { solution.Source }, context, discoverySink);

            return(discoverySink.Tests.ToList());
        }
        /// <summary>
        /// Applies the discovery process over the provided DummySolution
        /// </summary>
        /// <param name="solution">The dummy solution on which to apply test discovery</param>
        /// <returns>The list of tests which were discovered from the dummy solution</returns>
        private IList <TestCase> DiscoverTests(DummySolution solution)
        {
            DefaultTestCaseDiscoverySink discoverySink = new DefaultTestCaseDiscoverySink();

            ISourceFilter[] filters = new ISourceFilter[]
            {
                new QuotedStringsFilter(),
                new MultilineCommentFilter(),
                new SingleLineCommentFilter(),
                new ConditionalInclusionsFilter(new ExpressionEvaluation())
            };

            SourceCodeDiscoverer discoverer = new SourceCodeDiscoverer(solution.Provider);

            discoverer.DiscoverTests(new [] { solution.Source }, new DefaultTestContext(true), discoverySink);

            return(discoverySink.Tests.ToList());
        }