public void CorrectMultipleBoostTestDiscovererDispatchingNoExternal()
        {
            var sources = new[]
            {
                "ListContentSupport" + BoostTestDiscoverer.ExeExtension,
                "ParseSources1" + BoostTestDiscoverer.ExeExtension,
                "ParseSources2" + BoostTestDiscoverer.ExeExtension,
                "DllProject1" + BoostTestDiscoverer.DllExtension,
                "DllProject2" + BoostTestDiscoverer.DllExtension,
            };

            var stubListContentHelper = new StubListContentHelper();
            var boostTestDiscovererFactory = new BoostTestDiscovererFactory(stubListContentHelper);

            var results = boostTestDiscovererFactory.GetDiscoverers(sources, CreateAdapterSettings());

            Assert.That(results.Count(), Is.EqualTo(2));
            Assert.That(results.FirstOrDefault(x => x.Discoverer is ListContentDiscoverer), Is.Not.Null);
            var lcd = results.First(x => x.Discoverer is ListContentDiscoverer);
            Assert.That(lcd.Sources, Is.EqualTo(new[] { "ListContentSupport" + BoostTestDiscoverer.ExeExtension }));

            Assert.That(results.FirstOrDefault(x => x.Discoverer is SourceCodeDiscoverer), Is.Not.Null);
            var scd = results.First(x => x.Discoverer is SourceCodeDiscoverer);
            Assert.That(scd.Sources, Is.EqualTo(new[] { "ParseSources1" + BoostTestDiscoverer.ExeExtension,
                "ParseSources2" + BoostTestDiscoverer.ExeExtension }));

            Assert.That(results.FirstOrDefault(x => x.Sources.Contains("DllProject1" + BoostTestDiscoverer.DllExtension)), Is.Null);
            Assert.That(results.FirstOrDefault(x => x.Sources.Contains("DllProject2" + BoostTestDiscoverer.DllExtension)), Is.Null);

        }
        public void CorrectMultipleBoostTestDiscovererDispatchingWithExternalDll()
        {
            var sources = new[]
            {
                "ListContentSupport" + BoostTestDiscoverer.ExeExtension,
                "ParseSources1" + BoostTestDiscoverer.ExeExtension,
                "ParseSources2" + BoostTestDiscoverer.ExeExtension,
                "DllProject1" + BoostTestDiscoverer.DllExtension,
                "DllProject2" + BoostTestDiscoverer.DllExtension,
            };

            var stubListContentHelper = new StubListContentHelper();
            var boostTestDiscovererFactory = new BoostTestDiscovererFactory(stubListContentHelper);
            BoostTestAdapterSettings settings = new BoostTestAdapterSettings();
            settings.ExternalTestRunner = new ExternalBoostTestRunnerSettings
            {
                ExtensionType = BoostTestDiscoverer.DllExtension
            };

            var results = boostTestDiscovererFactory.GetDiscoverers(sources, settings);

            Assert.That(results.Count(), Is.EqualTo(3));
            Assert.That(results.FirstOrDefault(x => x.Discoverer is ListContentDiscoverer), Is.Not.Null);
            var lcd = results.First(x => x.Discoverer is ListContentDiscoverer);
            Assert.That(lcd.Sources, Is.EqualTo(new[] { "ListContentSupport" + BoostTestDiscoverer.ExeExtension }));

            Assert.That(results.FirstOrDefault(x => x.Discoverer is SourceCodeDiscoverer), Is.Not.Null);
            var scd = results.First(x => x.Discoverer is SourceCodeDiscoverer);
            Assert.That(scd.Sources, Is.EqualTo(new[] { "ParseSources1" + BoostTestDiscoverer.ExeExtension,
                "ParseSources2" + BoostTestDiscoverer.ExeExtension }));

            Assert.That(results.FirstOrDefault(x => x.Discoverer is ExternalDiscoverer), Is.Not.Null);
            var exd = results.First(x => x.Discoverer is ExternalDiscoverer);
            Assert.That(exd.Sources, Is.EqualTo(new[] { "DllProject1" + BoostTestDiscoverer.DllExtension,
                "DllProject2" + BoostTestDiscoverer.DllExtension }));
        }