Example #1
0
        public void Feature_contexts_persist_across_scenarios()
        {
            var plugin = new WindsorPlugin();
            var events = new RuntimePluginEvents();

            var globalContainer    = new ObjectContainer();
            var featureContainer   = new ObjectContainer(globalContainer);
            var scenarioContainer1 = new ObjectContainer(featureContainer);
            var scenarioContainer2 = new ObjectContainer(featureContainer);

            var context = new FeatureContext(featureContainer, new FeatureInfo(CultureInfo.CurrentCulture, "", "", ""), ConfigurationLoader.GetDefault());

            globalContainer.RegisterInstanceAs <IContainerFinder>(new SpecificContainerFinder(() => new WindsorContainer()));
            featureContainer.RegisterInstanceAs(context);

            plugin.Initialize(events, null, null);
            events.RaiseCustomizeGlobalDependencies(globalContainer, null);
            events.RaiseCustomizeFeatureDependencies(featureContainer);
            events.RaiseCustomizeScenarioDependencies(scenarioContainer1);
            var context1 = scenarioContainer1.Resolve <IWindsorContainer>().Resolve <FeatureContext>();

            events.RaiseCustomizeScenarioDependencies(scenarioContainer2);
            var context2 = scenarioContainer2.Resolve <IWindsorContainer>().Resolve <FeatureContext>();

            context2.Should().BeSameAs(context1);
        }
Example #2
0
        private IWindsorContainer CreateContainerViaPlugin(ObjectContainer globalContainer, ObjectContainer scenarioContainer)
        {
            var plugin = new WindsorPlugin();
            var events = new RuntimePluginEvents();

            globalContainer.RegisterInstanceAs <IContainerFinder>(new SpecificContainerFinder(() => new WindsorContainer()));

            plugin.Initialize(events, null, null);
            events.RaiseCustomizeGlobalDependencies(globalContainer, null);
            events.RaiseCustomizeScenarioDependencies(scenarioContainer);

            return(scenarioContainer.Resolve <IWindsorContainer>());
        }
Example #3
0
        public void Resolution_for_contexts_are_passed_to_object_container()
        {
            var container       = new WindsorContainer();
            var objectContainer = new Mock <IObjectContainer>();
            var context         = new ScenarioContext(
                objectContainer.Object,
                new ScenarioInfo("", "", Array.Empty <string>(), new OrderedDictionary()),
                new WindsorTestObjectResolver());

            objectContainer.Setup(x => x.Resolve <ScenarioContext>()).Returns(context);

            var plugin = new WindsorPlugin();

            plugin.RegisterSpecflowDependecies(objectContainer.Object, container);

            container.Resolve <ScenarioContext>();

            objectContainer.Verify(x => x.Resolve <ScenarioContext>(), Times.Once);
        }