/// <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)
        {
            ConsoleMessageLogger logger = new ConsoleMessageLogger();
            DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink();

            IBoostTestDiscoverer discoverer = new SourceCodeDiscoverer(provider);
            discoverer.DiscoverTests(sources, context, logger, 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();
            ConsoleMessageLogger logger = new ConsoleMessageLogger();

            discoverer.DiscoverTests(new[] { solution.Source }, context, logger, 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), new ConsoleMessageLogger(), discoverySink);

            return discoverySink.Tests.ToList();
        }