public void Sink_ShouldContainTestForAllSupportedTypeOfSources() { var sources = new[] { "ListContentSupport" + BoostTestDiscoverer.ExeExtension, "DllProject1" + BoostTestDiscoverer.DllExtension, "DllProject2" + BoostTestDiscoverer.DllExtension, }; var context = new DefaultTestContext(); var logger = new ConsoleMessageLogger(); var sink = new DefaultTestCaseDiscoverySink(); context.RegisterSettingProvider(BoostTestAdapterSettings.XmlRootName, new BoostTestAdapterSettingsProvider()); context.LoadEmbeddedSettings("BoostTestAdapterNunit.Resources.Settings.externalTestRunner.runsettings"); var boostTestDiscovererFactory = new StubBoostTestDiscovererFactory(); var boostTestDiscoverer = new BoostTestDiscoverer(boostTestDiscovererFactory); boostTestDiscoverer.DiscoverTests(sources, context, logger, sink); Assert.That(sink.Tests, Is.Not.Empty); // tests are found in the using the fake debughelper Assert.That(sink.Tests.Count(x => x.Source == "ListContentSupport" + BoostTestDiscoverer.ExeExtension), Is.EqualTo(8)); // the external runner does NOT support the two dll projects Assert.That(sink.Tests.Any(x => x.Source == "DllProject1" + BoostTestDiscoverer.DllExtension), Is.False); Assert.That(sink.Tests.Any(x => x.Source == "DllProject2" + BoostTestDiscoverer.DllExtension), Is.False); }
public void CorrectBoostTestDiscovererDispatching() { var bootTestDiscovererFactory = A.Fake<IBoostTestDiscovererFactory>(); var boostDllTestDiscoverer = A.Fake<IBoostTestDiscoverer>(); var boostExeTestDiscoverer = A.Fake<IBoostTestDiscoverer>(); var defaultTestContext = new DefaultTestContext(); var consoleMessageLogger = new ConsoleMessageLogger(); var defaultTestCaseDiscoverySink = new DefaultTestCaseDiscoverySink(); ITestDiscoverer boostTestDiscoverer = new BoostTestDiscoverer(bootTestDiscovererFactory); var projects = new string[] { "project1" + BoostTestDiscoverer.DllExtension, "project2" + BoostTestDiscoverer.ExeExtension, "project3" + BoostTestDiscoverer.ExeExtension, "project4" + BoostTestDiscoverer.DllExtension, "project5" + BoostTestDiscoverer.DllExtension, }; var dllProjectsExpected = new string[] { "project1" + BoostTestDiscoverer.DllExtension, "project4" + BoostTestDiscoverer.DllExtension, "project5" + BoostTestDiscoverer.DllExtension, }; var exeProjectsExpected = new string[] { "project2" + BoostTestDiscoverer.ExeExtension, "project3" + BoostTestDiscoverer.ExeExtension, }; IEnumerable<string> dllProjectsActual = null; IEnumerable<string> exeProjectsActual = null; A.CallTo(() => bootTestDiscovererFactory.GetTestDiscoverer(BoostTestDiscoverer.DllExtension, A<BoostTestDiscovererFactoryOptions>.Ignored)) .Returns(boostDllTestDiscoverer); A.CallTo(() => bootTestDiscovererFactory.GetTestDiscoverer(BoostTestDiscoverer.ExeExtension, A<BoostTestDiscovererFactoryOptions>.Ignored)) .Returns(boostExeTestDiscoverer); A.CallTo( () => boostDllTestDiscoverer.DiscoverTests(A<IEnumerable<string>>.Ignored, defaultTestContext, consoleMessageLogger, defaultTestCaseDiscoverySink)) .Invokes(call => dllProjectsActual = call.GetArgument<IEnumerable<string>>(0)); A.CallTo( () => boostExeTestDiscoverer.DiscoverTests(A<IEnumerable<string>>.Ignored, defaultTestContext, consoleMessageLogger, defaultTestCaseDiscoverySink)) .Invokes(call => exeProjectsActual = call.GetArgument<IEnumerable<string>>(0)); boostTestDiscoverer.DiscoverTests(projects, defaultTestContext, consoleMessageLogger, defaultTestCaseDiscoverySink); Assert.AreEqual(dllProjectsExpected, dllProjectsActual); Assert.AreEqual(exeProjectsExpected, exeProjectsActual); }