public string GetText(ModelQuery query, string title = null) { if (title.IsNotEmpty()) { _stringWriter.WriteLine(title); } switch (_graph.Role) { case ContainerRole.Root: break; case ContainerRole.ProfileOrChild: _stringWriter.WriteLine("Profile is '{0}'", _graph.Profile); break; case ContainerRole.Nested: _stringWriter.WriteLine("Nested Container: " + _graph.Profile); break; } _stringWriter.WriteLine(""); var model = _graph.ToModel(); var pluginTypes = query.Query(model); writeContentsOfPluginTypes(pluginTypes); return(_stringWriter.ToString()); }
public SessionCacheTester() { theResolverMock = Substitute.For<IBuildSession>(); theCache = new SessionCache(theResolverMock); thePipeline = Substitute.For<IPipelineGraph>(); thePipeline.ToModel().Returns(new Container().Model); instanceGraphMock = Substitute.For<IInstanceGraph>(); thePipeline.Instances.Returns(instanceGraphMock); }
public SessionCacheTester() { theResolverMock = Substitute.For <IBuildSession>(); theCache = new SessionCache(theResolverMock); thePipeline = Substitute.For <IPipelineGraph>(); thePipeline.ToModel().Returns(new Container().Model); instanceGraphMock = Substitute.For <IInstanceGraph>(); thePipeline.Instances.Returns(instanceGraphMock); }
public void Validate(IPipelineGraph pipeline, Policies policies) { var report = new ProfileReport(pipeline); _reports.Add(report); var closedTypes = pipeline.ToModel().PluginTypes.Where(x => !x.PluginType.IsOpenGeneric()).ToArray(); closedTypes.Each( family => { family.Instances.Each(i => { tryCreateBuildPlan(family.PluginType, i, policies, report); }); }); closedTypes.Each( family => { family.Instances.Where(x => !_buildPlanFailureIds.Contains(x.Instance.Id)) .Each(i => { tryBuildInstance(family.PluginType, i.Instance, pipeline, report); }); }); }
public object GetDefault(Type pluginType, IPipelineGraph pipelineGraph) { if (_defaults.ContainsKey(pluginType)) { return(_defaults[pluginType]); } var instance = pipelineGraph.Instances.GetDefault(pluginType); if (instance == null) { var ex = new StructureMapConfigurationException( "No default Instance is registered and cannot be automatically determined for type '{0}'", pluginType.GetFullName()); if (pipelineGraph.ToModel().HasImplementationsFor(pluginType)) { ex.Context = new WhatDoIHaveWriter(pipelineGraph).GetText(new ModelQuery { PluginType = pluginType }, "No default instance is specified. The current configuration for type {0} is:".ToFormat( pluginType.GetFullName())); } else { ex.Context = "There is no configuration specified for " + pluginType.GetFullName(); } throw ex; } var lifecycle = pipelineGraph.DetermineLifecycle(pluginType, instance); var o = GetObject(pluginType, instance, lifecycle); if (!(lifecycle is UniquePerRequestLifecycle) && pluginType != typeof(IContainer)) { _defaults.Add(pluginType, o); } return(o); }
public void Validate(IPipelineGraph pipeline, Policies policies) { var report = new ProfileReport(pipeline); _reports.Add(report); var closedTypes = pipeline.ToModel().PluginTypes.Where(x => !x.PluginType.IsOpenGeneric()).ToArray(); closedTypes.Each( family => { family.Instances.Each(i => { tryCreateBuildPlan(family.PluginType, i, policies, report); }); }); closedTypes.Each( family => { family.Instances.Where(x => !_buildPlanFailureIds.Contains(x.Instance.Id)) .Each(i => { tryBuildInstance(family.PluginType, i.Instance, pipeline, report); }); }); }