public async Task UnnamedScenarioFromTheoryShouldHaveNameSet()
        {
            var output = new VerifiableReportWriter();
            var report = new ScenarioReport("Test", output, new TestMessageSink());
            await Mock.ExecuteTestMethodAsync <FunctionsThatReturnScenarioRunResults>(report, nameof(BasicTheoryScenario), parameters : new object[] { 12, 30, 42 });

            var scenario = Assert.Single(output.Items.OfType <StartScenario>());

            Assert.Contains(nameof(BasicTheoryScenario), scenario.Name);
            Assert.Contains("a: 12, b: 30, result: 42", scenario.Name);
        }
        public async Task WhenScenarioHasTitleTheScopeShouldNotOverrideIt()
        {
            var output = new VerifiableReportWriter();
            var report = new ScenarioReport("Test", output, new TestMessageSink());
            await Mock.ExecuteTestMethodAsync <FunctionsThatReturnScenarioRunResults>(report, nameof(FactScenarioWithTitle));

            var scenario = Assert.Single(output.Items.OfType <StartScenario>());

            Assert.Contains(nameof(FactScenarioWithTitle), scenario.Scope);
            Assert.Equal("Custom Title", scenario.Name);
        }
        public async Task UnnamedScenarioFromFactShouldHaveNameSet()
        {
            var output = new VerifiableReportWriter();
            var report = new ScenarioReport("Test", output, new TestMessageSink());
            await Mock.ExecuteTestMethodAsync <FunctionsThatReturnScenarioRunResults>(report, nameof(BasicFactScenario));

            var scenario = Assert.Single(output.Items.OfType <StartScenario>());

            Assert.Contains(nameof(BasicFactScenario), scenario.Name);

            Assert.All(output.Items.OfType <Then>(), then => Assert.Contains(nameof(BasicFactScenario), then.Scope));
        }