Example #1
0
        protected override void OnConfigure(LightBddConfiguration configuration)
        {
            configuration.ReportWritersConfiguration()
            .Add(new ReportFileWriter(new PlainTextReportFormatter(), "~" + Path.DirectorySeparatorChar + "Reports" + Path.DirectorySeparatorChar + "FeaturesReport.txt"));

            configuration.DependencyContainerConfiguration().UseDefaultContainer(ConfigureContainer);
        }
 public MsTest2MetadataProvider(LightBddConfiguration configuration)
     : base(configuration.NameFormatterConfiguration().Formatter,
            configuration.StepTypeConfiguration(),
            configuration.CultureInfoProviderConfiguration().CultureInfoProvider,
            configuration.ValueFormattingConfiguration())
 {
 }
 protected override void OnConfigure(LightBddConfiguration configuration)
 {
     configuration
     .ReportWritersConfiguration()
     .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\FeaturesReport.txt")
     .AddFileWriter <HtmlReportFormatter>("~\\Reports\\FeaturesReport.html");
 }
Example #4
0
 /// <summary>
 /// This method allows to customize LightBDD behavior.
 /// The code below configures LightBDD to produce also a plain text report after all tests are done.
 /// More information on what can be customized can be found on wiki: https://github.com/LightBDD/LightBDD/wiki/LightBDD-Configuration#configurable-lightbdd-features
 /// </summary>
 protected override void OnConfigure(LightBddConfiguration configuration)
 {
     configuration
     .ReportWritersConfiguration()
     .AddFileWriter <XmlReportFormatter>("~\\Reports\\FeaturesReport.xml")
     .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt");
 }
 private static void OnConfigure(LightBddConfiguration configuration)
 {
     configuration
     .ReportWritersConfiguration()
     .Clear()
     .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt");
 }
        public void Get_should_instantiate_and_store_feature_config()
        {
            var cfg = new LightBddConfiguration();

            Assert.IsNotNull(cfg.Get <SealableFeatureConfig>());
            Assert.AreSame(cfg.Get <SealableFeatureConfig>(), cfg.Get <SealableFeatureConfig>());
        }
Example #7
0
 private static IMetadataProvider CreateMetadataProvider(LightBddConfiguration configuration)
 {
     return(new MsTest2MetadataProvider(
                configuration.NameFormatterConfiguration().Formatter,
                configuration.StepTypeConfiguration(),
                configuration.CultureInfoProviderConfiguration().CultureInfoProvider));
 }
Example #8
0
 protected override void OnConfigure(LightBddConfiguration configuration)
 {
     // some example customization of report writers
     configuration
     .ReportWritersConfiguration()
     .AddFileWriter <HtmlReportFormatter>("..\\..\\..\\Reports\\FeaturesReport.html");
 }
        public void Seal_should_make_future_config_sealed()
        {
            var cfg = new LightBddConfiguration();

            cfg.Seal();

            Assert.IsTrue(cfg.Get <SealableFeatureConfig>().IsSealed);
        }
Example #10
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="runnerRepository">Runner factory instance that would be used for instantiating runners.</param>
 /// <param name="featureAggregator">Feature aggregator instance used for aggregating feature results on coordinator disposal.</param>
 /// <param name="configuration"><see cref="LightBddConfiguration"/> instance used to initialize LightBDD tests.</param>
 protected FeatureCoordinator(FeatureRunnerRepository runnerRepository, IFeatureAggregator featureAggregator, LightBddConfiguration configuration)
 {
     _featureAggregator = featureAggregator;
     RunnerRepository   = runnerRepository;
     Configuration      = configuration;
     //TODO: Rework in LightBDD 3.X to use the same instance as CoreMetadataProvider (introduce IoC?)
     ValueFormattingService = new ValueFormattingService(Configuration);
 }
Example #11
0
        private static LightBddConfiguration Configure(Action <LightBddConfiguration> onConfigure)
        {
            var configuration = new LightBddConfiguration();

            configuration.NameFormatterConfiguration().UpdateFormatter(DefaultNameFormatter.Instance);
            onConfigure(configuration);
            return(configuration);
        }
Example #12
0
        protected override void OnConfigure(LightBddConfiguration configuration)
        {
            var defaultProvider = configuration.ScenarioProgressNotifierConfiguration().NotifierProvider;

            configuration
            .ScenarioProgressNotifierConfiguration()
            .UpdateNotifierProvider <object>(feature => new DelegatingScenarioProgressNotifier(defaultProvider(feature), new DefaultProgressNotifier(x => CapturedNotifications.Enqueue(x))));
        }
Example #13
0
        public void Configuration_should_be_sealable()
        {
            var lighbddConfig = new LightBddConfiguration();
            var cfg           = lighbddConfig.Get <CultureInfoProviderConfiguration>();

            lighbddConfig.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.UpdateCultureInfoProvider(Mock.Of <ICultureInfoProvider>()));
        }
Example #14
0
        public void Configuration_should_be_sealable()
        {
            var lighbddConfig = new LightBddConfiguration();
            var cfg           = lighbddConfig.Get <ScenarioProgressNotifierConfiguration>();

            lighbddConfig.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.UpdateNotifierProvider(Mock.Of <IScenarioProgressNotifier>));
        }
Example #15
0
        public void Configuration_should_be_sealable()
        {
            var config = new LightBddConfiguration();
            var cfg    = config.Get <ExceptionHandlingConfiguration>();

            config.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.UpdateExceptionDetailsFormatter(ex => "abc"));
        }
        public void Configuration_should_be_sealable()
        {
            var lighbddConfig = new LightBddConfiguration();
            var cfg           = lighbddConfig.Get <NameFormatterConfiguration>();

            lighbddConfig.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.UpdateFormatter(Mock.Of <INameFormatter>()));
        }
        public void WithFrameworkDefaults_should_enable_default_scenario_decorators()
        {
            var configuration = new LightBddConfiguration().WithFrameworkDefaults().ExecutionExtensionsConfiguration();

            Assert.That(configuration
                        .ScenarioDecorators
                        .Select(x => x.GetType())
                        .ToArray(),
                        Is.Empty);
        }
        public void LightBddConfiguration_should_accept_config_not_supporting_sealing()
        {
            Assert.IsNotNull(new LightBddConfiguration().Seal().Get <NotSealableFeatureConfig>());

            var cfg  = new LightBddConfiguration();
            var feat = cfg.Get <NotSealableFeatureConfig>();

            cfg.Seal();
            Assert.AreSame(feat, cfg.Get <NotSealableFeatureConfig>());
        }
Example #19
0
        protected override void OnConfigure(LightBddConfiguration configuration)
        {
            configuration.DependencyContainerConfiguration().UseDefaultContainer(cfg =>
            {
                cfg.RegisterInstance(new TestOutputHelper(), new RegistrationOptions().As <ITestOutputHelper>());
            });

            configuration.ExecutionExtensionsConfiguration()
            .EnableScenarioDecorator <ClearServerScenarioDecorator>();
        }
 protected override void OnConfigure(LightBddConfiguration configuration)
 {
     configuration.FeatureProgressNotifierConfiguration()
     .ClearNotifiers();
     configuration.ScenarioProgressNotifierConfiguration()
     .ClearNotifierProviders()
     .UpdateNotifierProvider(() => ScenarioProgressCapture.Instance);
     configuration.ReportWritersConfiguration()
     .Clear();
 }
Example #21
0
        public void Configuration_should_be_sealable()
        {
            var root = new LightBddConfiguration();
            var cfg  = root.Get <FeatureProgressNotifierConfiguration>();

            root.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.UpdateNotifier(Mock.Of <IFeatureProgressNotifier>()));
            Assert.Throws <InvalidOperationException>(() => cfg.AppendNotifiers(Mock.Of <IFeatureProgressNotifier>()));
            Assert.Throws <InvalidOperationException>(() => cfg.ClearNotifiers());
        }
 protected override void OnConfigure(LightBddConfiguration configuration)
 {
     configuration
     .ReportWritersConfiguration()
     .Clear()
     .AddFileWriter <XmlReportFormatter>(@"~/Reports/FeaturesReport.xml")
     .AddFileWriter <PlainTextReportFormatter>("~/Reports/{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt")
     .AddFileWriter <HtmlReportFormatter>(@"~/Reports/LightBDDHtmlReport.html")
     .AddFileWriter <MarkdownReportFormatter>(@"~/Reports/LightBDDReport.md")
     ;
 }
Example #23
0
        /// <summary>
        /// Default constructor sealing provided <paramref name="configuration"/> and initializing all properties.
        /// </summary>
        /// <param name="configuration">Configuration to use.</param>
        /// <param name="metadataProvider"><see cref="CoreMetadataProvider"/> instance to use.</param>
        /// <param name="exceptionToStatusMapper">Exception to status mapper function.</param>
        public DefaultIntegrationContext(LightBddConfiguration configuration, CoreMetadataProvider metadataProvider, Func <Exception, ExecutionStatus> exceptionToStatusMapper)
        {
            Configuration    = configuration?.Seal() ?? throw new ArgumentNullException(nameof(configuration));
            MetadataProvider = metadataProvider ?? throw new ArgumentNullException(nameof(metadataProvider));

            ExceptionToStatusMapper          = exceptionToStatusMapper;
            FeatureProgressNotifier          = configuration.FeatureProgressNotifierConfiguration().Notifier;
            ScenarioProgressNotifierProvider = configuration.ScenarioProgressNotifierConfiguration().NotifierProvider;
            ExecutionExtensions = configuration.ExecutionExtensionsConfiguration();
            DependencyContainer = configuration.DependencyContainerConfiguration().DependencyContainer;
        }
        public void FeatureConfiguration_should_offer_protection_from_modifying_sealed_config()
        {
            var cfg = new LightBddConfiguration();

            Assert.DoesNotThrow(() => cfg.Get <TestableFeatureConfig>().Foo());

            cfg.Seal();

            var ex = Assert.Throws <InvalidOperationException>(() => cfg.Get <TestableFeatureConfig>().Foo());

            Assert.That(ex.Message, Is.EqualTo("Feature configuration is sealed. Please update configuration only during LightBDD initialization."));
        }
Example #25
0
        /// <summary>
        /// Constructor.
        /// </summary>
        protected CoreMetadataProvider(LightBddConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            ValueFormattingService = new ValueFormattingService(configuration);
            NameFormatter          = configuration.NameFormatterConfiguration().GetFormatter();
            _nameParser            = new NameParser(NameFormatter);
            _stepTypeProcessor     = new StepTypeProcessor(NameFormatter, configuration.StepTypeConfiguration());
        }
Example #26
0
        protected override void OnConfigure(LightBddConfiguration configuration)
        {
            configuration.ReportWritersConfiguration()
            .Clear();

            configuration.FeatureProgressNotifierConfiguration()
            .ClearNotifiers();

            configuration.ScenarioProgressNotifierConfiguration()
            .ClearNotifierProviders()
            .AppendNotifierProviders(() => new DefaultProgressNotifier(x => CapturedNotifications.Enqueue(x)));
        }
        /// <summary>
        /// Applies framework default configuration.
        /// </summary>
        /// <param name="configuration">Configuration.</param>
        /// <returns><paramref name="configuration"/>.</returns>
        public static LightBddConfiguration WithFrameworkDefaults(this LightBddConfiguration configuration)
        {
            configuration
            .ExecutionExtensionsConfiguration()
            .EnableStepCommenting();

            configuration
            .ValueFormattingConfiguration()
            .RegisterFrameworkDefaultGeneralFormatters();

            return(configuration);
        }
        public void Seal_should_make_existing_config_sealed()
        {
            var cfg     = new LightBddConfiguration();
            var feature = cfg.Get <SealableFeatureConfig>();

            Assert.IsFalse(feature.IsSealed);
            Assert.IsFalse(cfg.IsSealed);

            cfg.Seal();

            Assert.IsTrue(cfg.IsSealed);
            Assert.IsTrue(feature.IsSealed);
        }
        public void Configuration_should_be_sealable()
        {
            var writer        = Mock.Of <IReportWriter>();
            var lighbddConfig = new LightBddConfiguration();
            var cfg           = lighbddConfig.Get <ReportWritersConfiguration>().Add(writer);

            lighbddConfig.Seal();

            Assert.Throws <InvalidOperationException>(() => cfg.Add(Mock.Of <IReportWriter>()));
            Assert.Throws <InvalidOperationException>(() => cfg.Clear());
            Assert.Throws <InvalidOperationException>(() => cfg.Remove(writer));
            Assert.That(cfg.ToArray(), Is.Not.Empty);
        }
Example #30
0
        private static void OnConfigure(LightBddConfiguration configuration)
        {
            // some example customization of report writers
            configuration
            .ReportWritersConfiguration()
            .Clear()
            .AddFileWriter <HtmlReportFormatter>("FeaturesReport.html")
            ;

            configuration
            .ValueFormattingConfiguration()
            .RegisterExplicit(typeof(Asset), new AssetFormatter())
            ;
        }