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 = CreateAdapterSettings(); 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 })); }
public IEnumerable<FactoryResult> GetDiscoverers(IReadOnlyCollection<string> sources, BoostTestAdapterSettings settings) { var tmpSources = new List<string>(sources); var discoverers = new List<FactoryResult>(); // sources that can be run on the external runner if (settings.ExternalTestRunner != null) { var extSources = tmpSources .Where(s => settings.ExternalTestRunner.ExtensionType == Path.GetExtension(s)) .ToList(); discoverers.Add(new FactoryResult() { Discoverer = new ExternalDiscoverer(settings.ExternalTestRunner), Sources = extSources }); tmpSources.RemoveAll(s => extSources.Contains(s)); } // sources that support list-content parameter var listContentHelper = new StubListContentHelper(); var listContentSources = tmpSources .Where(s => Path.GetExtension(s) == BoostTestDiscoverer.ExeExtension) .Where(listContentHelper.IsListContentSupported) .ToList(); if (listContentSources.Count > 0) { discoverers.Add(new FactoryResult() { Discoverer = new ListContentDiscoverer(listContentHelper), Sources = listContentSources }); tmpSources.RemoveAll(s => listContentSources.Contains(s)); } // sources that NOT support the list-content parameter var sourceCodeSources = tmpSources .Where(s => Path.GetExtension(s) == BoostTestDiscoverer.ExeExtension) .ToList(); if (sourceCodeSources.Count > 0) { discoverers.Add(new FactoryResult() { Discoverer = new SourceCodeDiscoverer(_dummySolution.Provider), Sources = sourceCodeSources }); } return discoverers; }
public void CorrectSingleProjectBoostTestDiscovererDispatchingExternalDll() { var stubListContentHelper = new StubListContentHelper(); var boostTestDiscovererFactory = new BoostTestDiscovererFactory(stubListContentHelper); BoostTestAdapterSettings settings = CreateAdapterSettings(); settings.ExternalTestRunner = new ExternalBoostTestRunnerSettings { ExtensionType = BoostTestDiscoverer.DllExtension }; // source that supports --list-content parameter var source = "ListContentSupport" + BoostTestDiscoverer.ExeExtension; var discoverer = boostTestDiscovererFactory.GetDiscoverer(source, settings); Assert.That(discoverer, Is.Not.Null); Assert.That(discoverer, Is.AssignableFrom(typeof(ListContentDiscoverer))); // source that NOT supports --list-content parameter source = "ParseSources" + BoostTestDiscoverer.ExeExtension; discoverer = boostTestDiscovererFactory.GetDiscoverer(source, settings); Assert.That(discoverer, Is.Not.Null); Assert.That(discoverer, Is.AssignableFrom(typeof(SourceCodeDiscoverer))); // source dll project source = "DllProject" + BoostTestDiscoverer.DllExtension; discoverer = boostTestDiscovererFactory.GetDiscoverer(source, settings); Assert.That(discoverer, Is.Not.Null); Assert.That(discoverer, Is.AssignableFrom(typeof(ExternalDiscoverer))); }
public void SetUp() { IListContentHelper helper = new StubListContentHelper("test.exe"); this.Factory = new BoostTestDiscovererFactory(helper); }