public static MultipleScenariosTestCaseRunnerMock Create(Type testClass, string testMethodName, ExceptionAggregator aggregator = null, IMessageBus bus = null)
            {
                var testCaseDiscoverer =
                    new ScenarioExpectationDiscovererTests.TestableScenarioExpectationDiscoverer(new NullMessageSink())
                {
                    PreEnumerateTestCases = false
                };

                var testMethod          = XunitMocks.TestMethod(testClass, testMethodName);
                var expectThatAttribute = XunitMocks.ExpectThatAttribute();
                var testCases           = testCaseDiscoverer.Discover(new TestFrameworkOptions(), testMethod, expectThatAttribute);
                var testCase            = testCases.SingleOrDefault() as MultipleScenariosTestCase;

                if (testCase == null)
                {
                    throw new NotSupportedException("Test case is not a MultipleScenariosTestCase");
                }

                var runner = new MultipleScenariosTestCaseRunnerMock(testCase,
                                                                     testCase.DisplayName,
                                                                     testCase.SkipReason,
                                                                     new object[0],
                                                                     new NullMessageSink(),
                                                                     bus,
                                                                     aggregator,
                                                                     new CancellationTokenSource()
                                                                     );

                return(runner);
            }
 protected MultipleScenariosTestCaseRunnerMock CreateRunner(Type testClass, string testMethodName)
 {
     return(MultipleScenariosTestCaseRunnerMock.Create(testClass, testMethodName, Aggregator, MessageBus.Object));
 }