public void Trace_Listener_Not_Supported() { string config = @"{ ""trace"": { ""listener"": ""TraceListener"" } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.CustomDependencies.Count.Should().Be(0); }
public void Check_Trace_StepDefinitionSkeletonStyle_RegexAttribute() { string config = @"{ ""trace"": { ""stepDefinitionSkeletonStyle"": ""RegexAttribute"" } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.StepDefinitionSkeletonStyle.Should().Be(StepDefinitionSkeletonStyle.RegexAttribute); }
public void Check_Trace_traceTimings_as_False() { string config = @"{ ""trace"": { ""traceTimings"": false } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.TraceTimings.Should().BeFalse(); }
public void Check_Trace_minTracedDuration() { string config = @"{ ""trace"": { ""minTracedDuration"": ""0:0:0:1.0"" } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.MinTracedDuration.Should().Be(TimeSpan.FromSeconds(1)); }
public void Check_Trace_traceSuccessfulSteps_as_True() { string config = @"{ ""trace"": { ""traceSuccessfulSteps"": true } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.TraceSuccessfulSteps.Should().BeTrue(); }
public void Check_Runtime_missingOrPendingStepsOutcome_as_Inconclusive() { string config = @"{ ""runtime"": { ""missingOrPendingStepsOutcome"": ""Inconclusive"" } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.MissingOrPendingStepsOutcome.Should().Be(MissingOrPendingStepsOutcome.Inconclusive); }
public void Check_CucumberMessages_Enabled_False() { string config = @"<specflow> <cucumber-messages enabled=""false""/> </specflow>"; var configSection = ConfigurationSectionHandler.CreateFromXml(config); var runtimeConfig = new AppConfigConfigurationLoader().LoadAppConfig(ConfigurationLoader.GetDefault(), configSection); runtimeConfig.CucumberMessagesConfiguration.Enabled.Should().BeFalse(); }
public virtual IObjectContainer CreateGlobalContainer(Assembly testAssembly, IRuntimeConfigurationProvider configurationProvider = null) { var container = new ObjectContainer(); container.RegisterInstanceAs <IContainerBuilder>(this); RegisterDefaults(container); var testAssemblyProvider = container.Resolve <ITestAssemblyProvider>(); testAssemblyProvider.RegisterTestAssembly(testAssembly); if (configurationProvider != null) { container.RegisterInstanceAs(configurationProvider); } configurationProvider = configurationProvider ?? container.Resolve <IRuntimeConfigurationProvider>(); container.RegisterTypeAs <RuntimePluginEvents, RuntimePluginEvents>(); //NOTE: we need this unnecessary registration, due to a bug in BoDi (does not inherit non-registered objects) var runtimePluginEvents = container.Resolve <RuntimePluginEvents>(); SpecFlowConfiguration specFlowConfiguration = ConfigurationLoader.GetDefault(); specFlowConfiguration = configurationProvider.LoadConfiguration(specFlowConfiguration); if (specFlowConfiguration.CustomDependencies != null) { container.RegisterFromConfiguration(specFlowConfiguration.CustomDependencies); } var unitTestProviderConfigration = container.Resolve <UnitTestProviderConfiguration>(); LoadPlugins(configurationProvider, container, runtimePluginEvents, specFlowConfiguration, unitTestProviderConfigration, testAssembly); runtimePluginEvents.RaiseConfigurationDefaults(specFlowConfiguration); runtimePluginEvents.RaiseRegisterGlobalDependencies(container); container.RegisterInstanceAs(specFlowConfiguration); if (unitTestProviderConfigration != null) { container.RegisterInstanceAs(container.Resolve <IUnitTestRuntimeProvider>(unitTestProviderConfigration.UnitTestProvider ?? ConfigDefaults.UnitTestProviderName)); } runtimePluginEvents.RaiseCustomizeGlobalDependencies(container, specFlowConfiguration); container.Resolve <IConfigurationLoader>().TraceConfigSource(container.Resolve <ITraceListener>(), specFlowConfiguration); return(container); }
public void Check_StepAssemblies_IsEmpty() { string config = @"{ ""stepAssemblies"" : [ ] }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.AdditionalStepAssemblies.Should().BeEmpty(); }
public void GetMessageSinksFromConfiguration_Cucumber_Messages_Are_Enabled__Default_Sink() { var specFlowConfiguration = ConfigurationLoader.GetDefault(); specFlowConfiguration.CucumberMessagesConfiguration.Enabled = true; var sinkProvider = new SinkProvider(specFlowConfiguration, new Mock <IBinaryFileAccessor>().Object, new Mock <IProtobufFileNameResolver>().Object); sinkProvider.GetMessageSinksFromConfiguration().Should().HaveCount(1); var cucumberMessageSink = sinkProvider.GetMessageSinksFromConfiguration().First(); cucumberMessageSink.Should().BeOfType <ProtobufFileSink>(); }
public void Should_be_able_to_change_default_configuration_from_a_plugin() { var pluginWithCustomConfiguration = new PluginWithCustomConfiguration(conf => conf.StopAtFirstError = true); var runtimePluginEvents = new RuntimePluginEvents(); pluginWithCustomConfiguration.Initialize(runtimePluginEvents, new RuntimePluginParameters(), new UnitTestProviderConfiguration()); var specFlowConfiguration = ConfigurationLoader.GetDefault(); runtimePluginEvents.RaiseConfigurationDefaults(specFlowConfiguration); specFlowConfiguration.StopAtFirstError.Should().BeTrue(); }
public void Check_CucumberMessages_Enabled_False() { string config = @"{ ""cucumber-messages"": { ""enabled"": false } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.CucumberMessagesConfiguration.Enabled.Should().BeFalse(); }
public void Check_Trace_StepDefinitionSkeletonStyle_MethodNameUnderscores() { string config = @"{ ""specflow"": { ""trace"": { ""stepDefinitionSkeletonStyle"": ""MethodNameUnderscores"" } } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.StepDefinitionSkeletonStyle.Should().Be(StepDefinitionSkeletonStyle.MethodNameUnderscores); }
public void Check_Runtime_missingOrPendingStepsOutcome_as_Error() { string config = @"{ ""specflow"": { ""runtime"": { ""missingOrPendingStepsOutcome"": ""Error"" } } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.MissingOrPendingStepsOutcome.Should().Be(MissingOrPendingStepsOutcome.Error); }
public void GetMessageSinksFromConfiguration_Unknown_sinks_are_configured__Error_is_thrown() { var specFlowConfiguration = ConfigurationLoader.GetDefault(); specFlowConfiguration.CucumberMessagesConfiguration.Enabled = true; specFlowConfiguration.CucumberMessagesConfiguration.Sinks.Add(new CucumberMessagesSink("unknown_type", "path_to_something")); var sinkProvider = new SinkProvider(specFlowConfiguration, new Mock <IBinaryFileAccessor>().Object, new Mock <IProtobufFileNameResolver>().Object); Action action = () => sinkProvider.GetMessageSinksFromConfiguration(); action.Should().Throw <NotImplementedException>().WithMessage("The sink type unknown_type"); }
public void Check_Runtime_stopAtFirstError_as_true() { string config = @"{ ""specflow"": { ""runtime"": { ""stopAtFirstError"": ""true"" } } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.StopAtFirstError.Should().BeTrue(); }
public void CheckUnitTestProvider() { string config = @"{ ""specflow"": { ""unitTestProvider"": { ""name"": ""XUnit"" } } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.UnitTestProvider.Should().Be("XUnit"); }
public void CheckBindingCulture() { string config = @"{ ""specflow"": { ""bindingCulture"": { ""name"": ""de"" } } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.BindingCulture.TwoLetterISOLanguageName.Should().Be("de"); }
public void TypeToTypeConverterShouldConvertTableToTable() { TypeToTypeConverter stepTransformationInstance = new TypeToTypeConverter(); var transformMethod = stepTransformationInstance.GetType().GetMethod("TableToTableConvert"); var stepTransformationBinding = CreateStepTransformationBinding(@"", transformMethod); var invoker = new BindingInvoker(ConfigurationLoader.GetDefault(), new Mock <IErrorProvider>().Object); TimeSpan duration; var result = invoker.InvokeBinding(stepTransformationBinding, contextManagerStub.Object, new object[] { new Table("h1") }, new Mock <ITestTracer>().Object, out duration); Assert.NotNull(result); Assert.That(result.GetType(), Is.EqualTo(typeof(Table))); Assert.That(((Table)result).Header, Is.EqualTo(new string[] { "transformed column", "h1" })); }
public void Check_Plugins_TwoSameNameEntry() { string config = @"<specflow><plugins> <add name=""testEntry""/> <add name=""testEntry""/> </plugins></specflow>"; var configSection = ConfigurationSectionHandler.CreateFromXml(config); var runtimeConfig = new AppConfigConfigurationLoader().LoadAppConfig(ConfigurationLoader.GetDefault(), configSection); runtimeConfig.Plugins.Count.Should().Be(1); runtimeConfig.Plugins[0].Name.Should().Be("testEntry"); }
public void TypeToTypeConverterShouldConvertStringToString() { TypeToTypeConverter stepTransformationInstance = new TypeToTypeConverter(); var transformMethod = stepTransformationInstance.GetType().GetMethod("StringToStringConvert"); var stepTransformationBinding = CreateStepTransformationBinding(@"", transformMethod); var invoker = new BindingInvoker(ConfigurationLoader.GetDefault(), new Mock <IErrorProvider>().Object); TimeSpan duration; var result = invoker.InvokeBinding(stepTransformationBinding, contextManagerStub.Object, new object[] { "xyz" }, new Mock <ITestTracer>().Object, out duration); Assert.NotNull(result); Assert.That(result.GetType(), Is.EqualTo(typeof(string))); Assert.That(((string)result), Is.EqualTo("prefix xyz")); }
public void Check_Plugins_NotInConfigFile() { string config = @"{ ""specflow"": { } }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.Plugins.Should().BeEmpty(); }
protected TestGenerator CreateTestGenerator(ProjectSettings projectSettings) { Configuration.SpecFlowConfiguration generatorSpecFlowConfiguration = ConfigurationLoader.GetDefault(); CodeDomHelper codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp); UnitTestFeatureGenerator unitTestFeatureGenerator = new UnitTestFeatureGenerator(new NUnitTestGeneratorProvider(codeDomHelper), codeDomHelper, generatorSpecFlowConfiguration, new DecoratorRegistryStub()); var gherkinParserFactory = new SpecFlowGherkinParserFactory(); var generatorRegistryStub = new Mock <IFeatureGeneratorRegistry>(); generatorRegistryStub.Setup(r => r.CreateGenerator(It.IsAny <SpecFlowDocument>())).Returns(unitTestFeatureGenerator); return(new TestGenerator(generatorSpecFlowConfiguration, projectSettings, TestHeaderWriterStub.Object, TestUpToDateCheckerStub.Object, generatorRegistryStub.Object, codeDomHelper, gherkinParserFactory)); }
public void Check_Defaults_Only_Root_Objects() { string configAsJson = @"{ ""bindingCulture"": {}, ""language"": {}, ""generator"": {}, ""runtime"": {}, ""trace"": {} }"; var config = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), configAsJson); AssertDefaultJsonSpecFlowConfiguration(config); }
public async Task TypeToTypeConverterShouldConvertStringToString() { TypeToTypeConverter stepTransformationInstance = new TypeToTypeConverter(); var transformMethod = stepTransformationInstance.GetType().GetMethod("StringToStringConvert"); var stepTransformationBinding = CreateStepTransformationBinding(@"", transformMethod); var invoker = new BindingInvoker(ConfigurationLoader.GetDefault(), new Mock <IErrorProvider>().Object, new BindingDelegateInvoker()); var(result, _) = await invoker.InvokeBindingAsync(stepTransformationBinding, contextManagerStub.Object, new object[] { "xyz" }, new Mock <ITestTracer>().Object); Assert.NotNull(result); result.GetType().Should().Be <string>(); result.Should().Be("prefix xyz"); }
public void Check_StepAssemblies_OneEntry() { string config = @"{ ""stepAssemblies"": [ {""assembly"": ""testEntry""} ] }"; var runtimeConfig = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), config); runtimeConfig.AdditionalStepAssemblies.Count.Should().Be(1); runtimeConfig.AdditionalStepAssemblies.First().Should().Be("testEntry"); }
public async Task TypeToTypeConverterShouldConvertTableToTable() { TypeToTypeConverter stepTransformationInstance = new TypeToTypeConverter(); var transformMethod = stepTransformationInstance.GetType().GetMethod("TableToTableConvert"); var stepTransformationBinding = CreateStepTransformationBinding(@"", transformMethod); var invoker = new BindingInvoker(ConfigurationLoader.GetDefault(), new Mock <IErrorProvider>().Object, new BindingDelegateInvoker()); var(result, _) = await invoker.InvokeBindingAsync(stepTransformationBinding, contextManagerStub.Object, new object[] { new Table("h1") }, new Mock <ITestTracer>().Object); Assert.NotNull(result); result.GetType().Should().Be <Table>(); ((Table)result).Header.Should().BeEquivalentTo(new string[] { "transformed column", "h1" }); }
public void Check_Generator_NonParallelizableMarkers_EmptyList() { string configAsJson = @"{ ""generator"": { ""addNonParallelizableMarkerForTags"": [ ] } }"; var config = new JsonConfigurationLoader().LoadJson(ConfigurationLoader.GetDefault(), configAsJson); config.AddNonParallelizableMarkerForTags.Should().BeEmpty(); }
public void Check_Trace_Listener() { string config = @"<specflow><trace listener=""TraceListener"" /></specflow>"; var configSection = ConfigurationSectionHandler.CreateFromXml(config); var runtimeConfig = new AppConfigConfigurationLoader().LoadAppConfig(ConfigurationLoader.GetDefault(), configSection); runtimeConfig.CustomDependencies.Count.Should().Be(1); foreach (ContainerRegistrationConfigElement containerRegistrationConfigElement in runtimeConfig.CustomDependencies) { containerRegistrationConfigElement.Implementation.Should().Be("TraceListener"); } }
public void Check_StepAssemblies_TwoEntry() { string config = @"<specflow><stepAssemblies> <stepAssembly assembly=""testEntry1""/> <stepAssembly assembly=""testEntry2""/> </stepAssemblies></specflow>"; var configSection = ConfigurationSectionHandler.CreateFromXml(config); var runtimeConfig = new AppConfigConfigurationLoader().LoadAppConfig(ConfigurationLoader.GetDefault(), configSection); runtimeConfig.AdditionalStepAssemblies.Count.Should().Be(2); runtimeConfig.AdditionalStepAssemblies[0].Should().Be("testEntry1"); runtimeConfig.AdditionalStepAssemblies[1].Should().Be("testEntry2"); }