public void TestExploreTestsAsyncWithAssemblyReturnsLoadedTestCases([Values] bool withChildTests,
                                                                            [Values] bool withFilter)
        {
            ITestFilter filter = withFilter
                ? NUnitFilter.Where.Class(typeof(TestFixtureStubOne).FullName).And.Method("Test2").Build().Filter
                : null;

            INUnitRunner runner   = new NUnitRunner("suite-name");
            Assembly     assembly = typeof(TestFixtureStubOne).Assembly;

            int expected = 0;

            if (withChildTests)
            {
                expected = withFilter ? 1 : TestFixtureStubHelper.GeTestFixtureStub().TestCount;
                Task <ITest> testTask = runner.AddTestAssemblyAsync(assembly);
                testTask.Wait();
            }

            Task <ITest> exploreTask = runner.ExploreTestsAsync(assembly, filter);

            Assert.IsNotNull(exploreTask);
            exploreTask.Wait();
            ITest test = exploreTask.Result;

            if (withChildTests)
            {
                Assert.IsNotNull(test);
                Assert.AreEqual(expected, test.TestCaseCount);
            }
            else
            {
                Assert.IsNull(test);
            }
        }
        public void TestExploreTestsAsyncThrowsArgumentNullExceptionWhenAssemblyIsNull()
        {
            INUnitRunner runner = new NUnitRunner("suite-name");

            Assert.ThrowsAsync(
                Is.TypeOf <ArgumentNullException>().And.Message
                .EqualTo("The assembly cannot be null. (Parameter 'assembly')"),
                async() => await runner.ExploreTestsAsync(null, null));
        }