public void Should_UnitTestFeatureGeneratorProvider_be_able_to_generate_anything()
        {
            var generatorProvider = CreateUnitTestFeatureGeneratorProvider();
            var anyFeature        = ParserHelper.CreateAnyFeature();

            generatorProvider.CanGenerate(anyFeature).Should().Be(true);
        }
        public void Should_UnitTestFeatureGeneratorProvider_create_UnitTestFeatureGenerator_instance()
        {
            var generatorProvider = CreateUnitTestFeatureGeneratorProvider();
            var anyFeature        = ParserHelper.CreateAnyFeature();
            var generator         = generatorProvider.CreateGenerator(anyFeature);

            generator.Should().BeOfType <UnitTestFeatureGenerator>();
        }
        public void Should_UnitTestFeatureGeneratorProvider_create_valid_instance()
        {
            var generatorProvider = CreateUnitTestFeatureGeneratorProvider();
            var anyFeature        = ParserHelper.CreateAnyFeature();
            var generator         = generatorProvider.CreateGenerator(anyFeature);

            generator.Should().NotBeNull();
        }
        public void Should_create_UnitTestFeatureGenerator_with_default_setup()
        {
            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            var anyFeature = ParserHelper.CreateAnyFeature();
            var generator  = featureGeneratorRegistry.CreateGenerator(anyFeature);

            generator.Should().BeOfType <UnitTestFeatureGenerator>();
        }
        public void Should_TagFilteredFeatureGeneratorProvider_not_be_applied_for_feature_with_no_tgas()
        {
            container.RegisterTypeAs <TestTagFilteredFeatureGeneratorProvider, IFeatureGeneratorProvider>("mytag");

            SpecFlowFeature theFeature = ParserHelper.CreateAnyFeature();

            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            var generator = featureGeneratorRegistry.CreateGenerator(theFeature);

            generator.Should().NotBe(TestTagFilteredFeatureGeneratorProvider.DummyGenerator);
        }
        public void Should_TagFilteredFeatureGeneratorProvider_applied_for_registered_tag_name_with_at()
        {
            container.RegisterTypeAs <TestTagFilteredFeatureGeneratorProvider, IFeatureGeneratorProvider>("@mytag");

            SpecFlowFeature theFeature = ParserHelper.CreateAnyFeature(tags: new[] { "mytag" });

            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            var generator = featureGeneratorRegistry.CreateGenerator(theFeature);

            generator.Should().Be(TestTagFilteredFeatureGeneratorProvider.DummyGenerator);
        }
        public void Should_use_generic_provider_with_higher_priority()
        {
            var dummyGenerator = new Mock <IFeatureGenerator>().Object;

            var genericHighPrioProvider = new Mock <IFeatureGeneratorProvider>();

            genericHighPrioProvider.Setup(p => p.CreateGenerator(It.IsAny <SpecFlowFeature>())).Returns(dummyGenerator);
            genericHighPrioProvider.Setup(p => p.CanGenerate(It.IsAny <SpecFlowFeature>())).Returns(true); // generic
            genericHighPrioProvider.Setup(p => p.Priority).Returns(1);                                     // high-prio

            container.RegisterInstanceAs(genericHighPrioProvider.Object, "custom");

            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            var anyFeature = ParserHelper.CreateAnyFeature();
            var generator  = featureGeneratorRegistry.CreateGenerator(anyFeature);

            generator.Should().Be(dummyGenerator);
        }
        public void Should_skip_high_priority_provider_when_not_applicable()
        {
            var dummyGenerator = new Mock <IFeatureGenerator>().Object;

            SpecFlowFeature theFeature = ParserHelper.CreateAnyFeature();

            var genericHighPrioProvider = new Mock <IFeatureGeneratorProvider>();

            genericHighPrioProvider.Setup(p => p.CreateGenerator(It.IsAny <SpecFlowFeature>())).Returns(dummyGenerator);
            genericHighPrioProvider.Setup(p => p.CanGenerate(theFeature)).Returns(false); // not applicable for aFeature
            genericHighPrioProvider.Setup(p => p.Priority).Returns(1);                    // high-prio

            container.RegisterInstanceAs(genericHighPrioProvider.Object, "custom");

            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            var generator = featureGeneratorRegistry.CreateGenerator(theFeature);

            generator.Should().BeOfType <UnitTestFeatureGenerator>();
        }
        public void Should_call_provider_wiht_the_given_feature()
        {
            var dummyGenerator = new Mock <IFeatureGenerator>().Object;

            var genericHighPrioProvider = new Mock <IFeatureGeneratorProvider>();

            genericHighPrioProvider.Setup(p => p.CreateGenerator(It.IsAny <SpecFlowFeature>())).Returns(dummyGenerator);
            genericHighPrioProvider.Setup(p => p.CanGenerate(It.IsAny <SpecFlowFeature>())).Returns(true); // generic
            genericHighPrioProvider.Setup(p => p.Priority).Returns(1);                                     // high-prio

            container.RegisterInstanceAs(genericHighPrioProvider.Object, "custom");

            var featureGeneratorRegistry = CreateFeatureGeneratorRegistry();

            SpecFlowFeature theFeature = ParserHelper.CreateAnyFeature();

            featureGeneratorRegistry.CreateGenerator(theFeature);

            genericHighPrioProvider.Verify(p => p.CreateGenerator(theFeature), Times.Once());
        }
Example #10
0
 protected IFeatureGenerator CreateUnitTestFeatureGenerator()
 {
     return(container.Resolve <UnitTestFeatureGeneratorProvider>().CreateGenerator(ParserHelper.CreateAnyFeature()));
 }
 private static TestClassGenerationContext CreateGenerationContext(string tag)
 {
     return(new TestClassGenerationContext(null, ParserHelper.CreateAnyFeature(new [] { tag }), null, null, null, null, null, null, null, null, null, null, true));
 }