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); }
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>()); }
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); }